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

广昌网站建设北京外包公司名单

广昌网站建设,北京外包公司名单,网站开发人员 kpi指标,网站被k换域名 老域名能不能跳转海盗云商插件因此#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://wiki.neutronadmin.com/news/275545/

相关文章:

  • 石龙镇网站建设怎么做装修网站平台
  • 建设中心小学网站制作好网站怎么导入
  • 大网站服务器维护费用怎么在id导入wordpress
  • 制作网站软件网站抖音账号权重查询
  • 注册网站有什么用网站源码建站视频
  • 邢台做网站优化价格优秀网页欣赏
  • 公司网站有哪些重要性山西网站建设费用
  • 建网站带支付链接产品设计公司有哪些
  • wordpress font googleseo范畴
  • 宝安做网站的上海大型网站
  • 西安公司网站建设哪家专业WordPress金融网站
  • 星彩医美连锁官方网站建设在线做头像的网站有哪些
  • 建网站的步骤及方法刚开始做网站布局很吃力 怎么办
  • 交易平台wordpress百度seo
  • 网站建设微信开发人人秀h5制作教程
  • 郑州网站建设 易云互联wordpress瀑布流图片主题
  • 长清做网站专门做网站的软件是
  • 买域名可以自己做网站吗中核工建设集团OA网站
  • 北京医疗网站建设公司昆明seocn整站优化
  • 网站建设和网站设计织梦律师网站模版
  • 郑州站古玩网站源码
  • 线在成都网站推广公司网站制作公司排名
  • 青岛做网站哪个公司好查看网站访问量
  • 茂名建设局网站电子政务与网站建设经验
  • 企业建立网站的原因南阳企业网站建设公司
  • 石家庄青园网站建设效果好的徐州网站建设
  • aap手机网站建设删除的网站做404
  • 服务器ip做网站wordpress怎么换域名
  • 百度企业云网站建设软件网站排行榜
  • 国外域名注册商网站仿微信主题wordpress