Objects.requireNonNullElseGet
是 Java 9 引入的方法,不在 Java 8 中可用。但是,
可以使用 Java 8 的一些功能来模拟类似的效果。
快速查阅
JDK9以上表述:
this.principalFactory = Objects.requireNonNullElseGet(principalFactory, DefaultPrincipalFactory::new);
JDK8中的表述:
this.principalFactory = Optional.ofNullable(principalFactory)
.orElseGet(DefaultPrincipalFactory::new);
原理
在Java9中,该方法本质上就是在obj
为空的时候,接收一个Supplier
参数,生成一个默认值。
在 Java 8 中,可以使用 Optional
类的 orElseGet
方法来实现类似的功能。orElseGet
方法接受一个 Supplier
参数,用于在 Optional
对象为空时生成一个默认值。
在上述示例中,我们使用 Optional.ofNullable
方法将可能为空的对象 value
包装成一个 Optional
对象。然后,我们使用 orElseGet
方法来指定在 value
为空时使用的默认值。
请注意,虽然这种方式可以在 Java 8 中模拟类似的功能,但在 Java 9 中直接使用 Objects.requireNonNullElseGet
更为简洁和直观。如果在 Java 8 中使用了大量的类似功能,考虑升级到 Java 9 或更高的版本可能会更方便。文章来源:https://www.toymoban.com/news/detail-658525.html
ATFWUS 2023-08-04文章来源地址https://www.toymoban.com/news/detail-658525.html
到了这里,关于【JDK版本差异】Optional.requireNonNullElseGet在JAVA8中的替代表述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!