当前位置: 首页 > 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://www.yutouwan.com/news/275545/

相关文章:

  • 苏州做网站公司速找苏州聚尚网络网站的设计与制作论文题目
  • 平面设计软件手机淄博抖音关键词优化
  • 昆明建设网站公司站长之家爱站网
  • 做网站的最佳方法html网页编辑器下载
  • 贡井区建设局网站?网站挂到国外服务器
  • 通城做网站公司wordpress发布文章提示更新失败
  • 服装公司网站多少钱网站优化建设广州
  • 网站模板上传打不开上海猎头公司电话
  • 西安网站建设哪个平台好兰州市政建设集团网站
  • 广州网站建设clov5r网站备案之前需要建好网站吗
  • 汕尾手机网站建设报价html网页留言板代码
  • 建设医院网站ppt模板下载网站站内优化方法
  • 当今做啥网站能致富北京网页设计模板
  • 木屋网站建设成功的品牌推广案例分析
  • 天台县建设规划局网站国家企业年报系统官网
  • 网站开发制作合同范本aspnet网站开发实战
  • 甘肃省集约化网站建设试点网站开发薪水一般多少钱
  • 营销型网站建设优化建站网站建设方案模板下载
  • 个人网站psd网站导航这么做
  • 开发网站做图文水印逻辑wordpress+搜索无效
  • dw做的个人网站新闻发稿平台有哪些?
  • 怎样建设网络游戏网站南昌做建网站的
  • 安徽省公共资源交易中心网站网站集约化建设力度
  • 鹰潭做网站公司公司网站续费帐怎么做
  • 网站设计运行费用建设手机网站经验分享
  • 广州网站排名推广公司用Python做网站如何配置域名
  • 电商网站开发面试题wordpress 数据 拆分
  • 全国购物网站排名个人网站开发的背景
  • 辽阳市建设行业培训中心网站咸阳住房和城乡建设局网站
  • 网站服务器租用还是托管呢企业网站策划书