当前位置: 首页 > news >正文

北京网站建设公司司网站备案和icp备案

北京网站建设公司司,网站备案和icp备案,分析网页设计布局,wordpress联系表单海盗云商插件因此#xff0c;Java没有Elvis运算符#xff08;或者#xff0c;更正式地讲#xff0c;它没有null合并运算符或null安全成员选择#xff09;……虽然我个人不太在意它#xff0c;但有些人似乎很喜欢它。 当一位同事需要几天后#xff0c;我坐下来探讨了我们… 海盗云商插件 因此Java没有Elvis运算符或者更正式地讲它没有null合并运算符或null安全成员选择……虽然我个人不太在意它但有些人似乎很喜欢它。 当一位同事需要几天后我坐下来探讨了我们的选择。 而且你知道什么 您可以非常接近方法引用。 总览 我们首先来看看猫王经营者是什么以及为何涉及海盗。 然后我将展示如何使用实用程序方法来实现它。 可以在专用的GitHub项目中找到实现演示和本文中的大多数示例。 该代码是Public Domain因此您可以不受限制地使用它。 他不是死了吗 我也这样认为但显然不是 。 就像关于国王还活着的谣言一样希望猫王经营者的人们也从未消亡。 因此让我们看看他们想要什么。 发布时间由这哈特福德盖伊在CC-BY-SA 。 如果您想自己阅读有关它的讨论请参阅OpenJDK邮件列表上的该主题 Stephen Colebourne在其中为Java 7提出了这些运算符。 猫王算子 Elvis最简单的形式是一个二进制运算符它选择非null操作数而优先选择左边的操作数。 所以代替... private String getStreetName() {return streetName null ? Unknown Street : streetName; // or like this? // return streetName ! null ? streetName : Unknown Street; } …你可以写… private String getStreetName() {return streetName ?: Unknown Street; } 我可以用Java来获得这个。 对于经常使用的模式这是一个不错的捷径可以避免我浪费时间来决定用哪种方式对三元运算符进行排序 ”因为我总是想知道我是要把常规情况放在首位还是要避免双重否定。 用静态效用函数来模拟它当然是微不足道的但是我也说边界是毫无意义的。 静态导入该方法并让所有代码阅读者查找其含义的工作胜过其所提供的一点好处。 所以我不是在谈论这个猫王。 顺便说一句之所以这样称呼是因为看起来像带有蓬皮杜鹃的笑脸。 如果不是猫王的话那会是谁呢是的这就是我们行业内一直选择名字的方式 更正式地说它也称为空合并运算符 。 海盗猫王操作员 然后还有另一件事似乎没有它自己的名字这就是我想谈的。 它有时也被称为猫王但有时却得到方便的名称例如“ null-safe成员选择运算符”。 至少这很好地解释了它的作用如果在其上调用该成员的实例为null则短路成员选择以便整个调用返回null。 当您要链接方法调用时这很方便但是其中一些可能返回null。 当然您必须对此进行检查否则会遇到NullPointerExeption。 这可能导致相当丑陋的代码。 代替… private String getStreetName(Order order) {return order.getCustomer().getAddress().getStreetName(); } …你必须写… private String getStreetName(Order order) {Customer customer order null ? null : order.getCustomer();Address address customer null ? null : customer.getAddress();return address.getStreetName(); } 这显然是可怕的。 但是使用“空安全成员选择运算符” private String getStreetName(Order order) {return order?.getCustomer()?.getAddress()?.getStreetName(); } 看起来更好吧 是。 它让您忘记所有讨厌的null是吗 是。 所以这就是为什么我认为这是一个坏主意。 字段经常是设计错误的根源。 对于Java 8您可以使用Optional来避免null 。 因此实际上应该没有什么理由可以使空值抛出变得更加容易。 也就是说有时您仍然想要所以让我们来看看如何接近。 顺便说一句由于该变体似乎还没有正式术语因此我将其命名为。 Pirate-Elvis运算符请注意缺少的眼睛。 记住您首先在这里阅读 ; 实施海盗猫王运营商 现在我们知道了我们在说什么让我们开始实施它。 我们可以为此使用Optional或编写一些专用方法。 带可选 只需将第一个实例包装在Optional中然后将链接函数用作地图即可 private String getStreetName(Order order) {return Optional.ofNullable(order).map(Order::getCustomer).map(Customer::getAddress).map(Address::getStreetName).orElse(null); } 这需要很多样板但已经包含了关键方面使用方法引用指定要调用的方法如果为空在这种情况下导致空的Optional则不要调用这些方法。 我仍然喜欢此解决方案因为它清楚地记录了这些调用的可选性。 做正确的事情并以OptionalString返回街道名称也很容易实际上使代码更短。 使用专用实用程序方法 从使用Optional的解决方案开始为这种特殊情况找到更短的方法非常简单只需将实例和方法引用交给专用方法然后在第一个值为null时对其进行分类。 空合并功能应用 public static T1, T2 T2 applyNullCoalescing(T1 target,FunctionT1, T2 f) {return target null ? null : f.apply(target); }public static T1, T2, T3 T3 applyNullCoalescing(T1 target,FunctionT1, T2 f1, FunctionT2, T3 f2) {return applyNullCoalescing(applyNullCoalescing(target, f1), f2); }public static T1, T2, T3, T4 T4 applyNullCoalescing(T1 target,FunctionT1, T2 f1, FunctionT2, T3 f2,FunctionT3, T4 f3) {return applyNullCoalescing(applyNullCoalescing(target, f1, f2), f3); }public static T1, T2, T3, T4, T5 T5 applyNullCoalescing(T1 target,FunctionT1, T2 f1, FunctionT2, T3 f2,FunctionT3, T4 f3, FunctionT4, T5 f4) {return applyNullCoalescing(applyNullCoalescing(target, f1, f2, f3), f4); } 此实现为简洁起见进行了优化。如果显式实现每种方法则可以提高性能。 使用方法引用可以很容易地调用这些方法 private String getStreetName(Order order) {return applyNullCoalescing(order,Order::getCustomer, Customer::getAddress, Address::getStreetName); } 还是没有order?.getCustomer()?.getAddress()?.getStreetName(); 但关闭。 反射 我们已经看到了空合并运算符:)和空安全成员选择运算符。是什么。 即使后者可能会鼓励不良习惯传递空值我们还是使用实用方法来实现它该方法可以通过方法引用来调用。 您喜欢的任何代码都可以免费使用。 翻译自: https://www.javacodegeeks.com/2015/03/roll-your-own-pirate-elvis-operator.html海盗云商插件
http://www.zqtcl.cn/news/455737/

相关文章:

  • 建立网站时服务器的基本配置有哪些做网站电信运营许可证
  • 如何阿里巴巴网站做推广方案怎么做网站的浏览栏
  • 织梦做中英文企业网站ui设计工资一般多少钱
  • php网站调试环境搭建关于网站开发的毕业设计
  • 如何在网站上做评比wordpress 图标代码
  • 网站优化建议怎么写pageadmin怎么样
  • 中外商贸网站建设平台合肥响应式网站开发
  • 雨花区区网站建设公司上传文章网站
  • 长春网站z制作自己做背景的网站
  • 浙江英文网站建设陕西百度推广的代理商
  • 怎么看网站蜘蛛网站价格评估 优帮云
  • 南充高端网站建设什么是搜索引擎营销
  • 找做网站的上什么appwordpress esc html
  • 如何做网站效果更好国外效果图网站
  • 西安seo网站推广优化芜湖代理公司注册
  • 某某网站建设策划书2000字长沙专门做网站公司
  • 成都pc网站建设莱州市网站
  • 推广平台网站热狗网黄浦网站建设推广
  • 网站跳出率因素徐州市城乡建设局官方网站
  • 中小型企业 公司网站建设特大新闻凌晨刚刚发生
  • 现在建设网站赚钱吗wordpress简约博客主题
  • 扬州网站商城建设价格凡科互动游戏作弊
  • 嘉定企业网站制作中国空间雷达卫星
  • dw做一个小网站教程厦门seo小谢
  • 江苏国龙翔建设公司网站济南百度推广公司
  • 北京理工大学网站网页设计html手册
  • 智能建站大师官网平台招聘页面设计模板
  • 网页制作三剑客不包括优化关键词推广
  • 济南设计网站中盛浩瀚建设有限公司网站
  • 做袜子娃娃的网站wordpress 文章卡片