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

PPT做音乐网站介绍微网站开发第三方平台

PPT做音乐网站介绍,微网站开发第三方平台,衡水seo外包,wordpress主题安装说明对象空指针没有人喜欢空指针异常 #xff01; 我们有办法摆脱它们吗#xff1f; 也许 。 。 。 这篇文章中讨论了几种技术#xff1a; 可选类型#xff08;Java 8中的新增功能#xff09; 对象类#xff08;旧的Java 7东西#xff01;#xff09; Java 8中的可选类… 对象空指针 没有人喜欢空指针异常 我们有办法摆脱它们吗 也许 。 。 。 这篇文章中讨论了几种技术 可选类型Java 8中的新增功能 对象类旧的Java 7东西 Java 8中的可选类型 它是什么 Java 8中引入的一种新类型类 打算充当特定类型的对象或没有对象空的方案的“ 包装器 ” 简而言之它是处理空值的更好替代品 警告 起初可能不是很明显 基本用法 它是一种类型一个类–那么如何创建它的实例 只需在Optional类中使用三个静态方法。 public static OptionalString stringOptional(String input) {return Optional.of(input); } 简单明了–创建一个包含值的Optional包装器。 当心–如果值本身为null将抛出NPE public static OptionalString stringNullableOptional(String input) {if (!new Random().nextBoolean()) {input null;}return Optional.ofNullable(input); } 我个人认为好一点。 这里没有NPE的风险–如果输入为空则将返回空的 Optional。 public static OptionalString emptyOptional() {return Optional.empty(); } 如果您要有目的地返回“空”值。 empty并不意味着null 。 好了–使用/使用Optional怎么样 public static void consumingOptional() {OptionalString wrapped Optional.of(aString);if (wrapped.isPresent()) {System.out.println(Got string - wrapped.get());}else {System.out.println(Gotcha !);} } 一种简单的方法是检查Optional包装器是否具有实际值使用isPresent方法–这将使您想知道它是否比使用ifmyObj null好 。 不用担心我也会解释这一点。 public static void consumingNullableOptional() {String input null;if (new Random().nextBoolean()) {input iCanBeNull;}OptionalString wrapped Optional.ofNullable(input);System.out.println(wrapped.orElse(default)); } 如果包装的值为null则可以使用orElse来返回默认值这很明显。 我们避免了在提取实际值之前调用ifPresent的明显冗长。 public static void consumingEmptyOptional() {String input null;if (new Random().nextBoolean()) {input iCanBeNull;}OptionalString wrapped Optional.ofNullable(input);System.out.println(wrapped.orElseGet(() - {return defaultBySupplier;})); } 我对此有些困惑。 为什么要使用两种单独的方法来实现相似的目标 orElse和orElseGet很可能已被重载 相同名称不同参数。 无论如何这里唯一明显的区别是参数本身–您可以选择提供一个Lambda表达式来表示Supplier T 功能接口的实例。 与常规的空值检查相比使用Optional更好吗 总的来说使用Optional的主要好处是能够清楚地表达您的意图 -简单地从方法中返回null会使消费者对是否是故意的存有疑问当实际的NPE出现时并且需要进一步自省javadocs如果有。 借助Optional其水晶般清晰 有以下几种方式可以完全避免NPE与可选-在上面的例子中所提到的使用Optional.ofNullable可选创建过程中和否则容易和orElseGet可选消费过程中从NPE上保护我们一起 另一个救星 以防您无法使用Java 8 查看此代码段。 package com.abhirockzz.wordpress.npesaviors;import java.util.Map; import java.util.Objects;public class UsingObjects {String getVal(MapString, String aMap, String key) {return aMap.containsKey(key) ? aMap.get(key) : null;}public static void main(String[] args) {UsingObjects obj new UsingObjects();obj.getVal(null, dummy);} } 什么可能为空 地图对象 执行搜索所依据的密钥 在其上调用方法的实例 在这种情况下引发NPE时我们永远无法确定什么是null 输入对象类 package com.abhirockzz.wordpress.npesaviors;import java.util.Map; import java.util.Objects;public class UsingObjects {String getValSafe(MapString, String aMap, String key) {MapString, String safeMap Objects.requireNonNull(aMap,Map is null);String safeKey Objects.requireNonNull(key, Key is null);return safeMap.containsKey(safeKey) ? safeMap.get(safeKey) : null;}public static void main(String[] args) {UsingObjects obj new UsingObjects();obj.getValSafe(null, dummy);} } requireNonNull方法 如果其值不为null则仅返回该值 如果值为null则将向NPE投掷指定的消息 为什么这比ifmyObj null更好 您将看到的堆栈跟踪将明显具有Objects.requireNonNull方法调用。 这以及您的自定义错误消息将帮助您更快地发现错误。 。 .IMO快得多 您也可以编写用户定义的检查例如实施强制执行非空性的简单检查 import java.util.Collections; import java.util.List; import java.util.Objects; import java.util.function.Predicate;public class RandomGist {public static T T requireNonEmpty(T object, PredicateT predicate, String msgToCaller){Objects.requireNonNull(object);Objects.requireNonNull(predicate);if (predicate.test(object)){throw new IllegalArgumentException(msgToCaller);}return object;}public static void main(String[] args) {//Usage 1: an empty string (intentional)String s ;System.out.println(requireNonEmpty(Objects.requireNonNull(s), (s1) - s1.isEmpty() , My String is Empty!));//Usage 2: an empty List (intentional)List list Collections.emptyList();System.out.println(requireNonEmpty(Objects.requireNonNull(list), (l) - l.isEmpty(), List is Empty!).size());//Usage 3: an empty User (intentional)User user new User();System.out.println(requireNonEmpty(Objects.requireNonNull(user), (u) - u.getName().isEmpty(), User is Empty!)); }private static class User {private String name;public User(String name){this.name name;}public String getName(){return name;}} } 不要让NPE在错误的地方感到痛苦。 我们拥有一套不错的工具来更好地处理NPE或完全消除它们 干杯! 翻译自: https://www.javacodegeeks.com/2014/09/optional-and-objects-null-pointer-saviours.html对象空指针
http://www.zqtcl.cn/news/56721/

相关文章:

  • 网站的中英文切换代码查建筑公司资质的网站
  • 湖北做网站安装wifi需要多少钱
  • 我想做个百度网站怎么做的常州网站制作培训
  • 开电商网站需要多少钱充电宝网站建设策划书
  • 商洛网站开发公司昆明网站建设报价
  • 毕业答辩ppt模板免费下载网站seo实战
  • 做网站的公司风险大不大php网站本地调试
  • 自己怎样学做网站小程序开发源码
  • 网站建设注意哪些问题做英文网站用什么源码
  • 贵阳网站建设推广有什么网站可以做3d
  • 一家做运动鞋的网站缪斯形象设计高级定制
  • 后端网站开发培训环保局 网站建设
  • 咨询类网站开发的意义好乐买的网站推广方式
  • ipa文件自己网站怎么做下载网站建设布局
  • 平台门户网站建设方案网站运营与维护是什么意思
  • 去菲律宾做it网站开发wordpress变论坛
  • 岳池建设局网站手机网站被拦截怎么解除
  • 合肥网站设计建设女生去住建局好不好
  • 网站消耗流量聚来宝网站建设
  • 微官网和手机网站区别茂名网站建设优化
  • 周口 网站建设中国能源建设集团有限公司招聘
  • 医院网站优化策划一家专做有机蔬菜的网站
  • 医院网站加快建设网站建设售后服务
  • 静态网页多少钱一页合肥网站seo费用
  • 潍坊作风建设网站哪家公司建5g基站
  • 西宁做腋臭哪里北大DE网站wordpress文章公众号
  • 坊网站建设南京房地产开发公司
  • 牡丹江市住房和城乡建设局网站fifa世界排名最新
  • 上海手机网站制作哪家好公司网站建设注册
  • 网站建设的主题什么比较好物流网站