本文一共约1760字,阅读时长大概等于一首Enrique Iglesias的《Ring My Bells》。
自从2018年开始,Java采用了每六个月发布一次新版本的策略。这样的策略使得Java保持了新鲜感以及强劲的生命力,在这篇文章中,我将会为大家带来6个实用的Java新特性。
NullPointerException是Java所有异常中最经典的一种。大家肯定对它不陌生,它经常出乎意料地出现,让人头疼不已。好在Java 8为我们引入了Optional类,Java 10完善了这一机制。
从本质上讲,Optional类允许你包装一个变量,然后使用包装器的方法来更简洁地处理Null的问题。
下面我们看一个对照的例子:
例1.1 未使用Optional类的空指针
public class MyClass { public static void main(String args[]) { InnerClass innerClass = null; // 这里对引用为null的变量进行了方法访问,产生一个NullPointerException System.out.println("innerClass = " + innerClass.getName()); } } class InnerClass { String name = ""; public String getName() { return this.name; } }
现在我们如何使用Optional来避免上面情况的出现呢?
Optional类有一个isPresent()方法,你可以拿它做一个if-check。但是我们由更简短的方法——ifPresent(),只有在值存在的情况下才会继续运行代码。
例1.2 使用Optional类的空指针
public class MyClass { public static void main(String args[]) { InnerClass innerClass = null; Optional fooWrapper = Optional.ofNullable(in