Java8新特性系列-Optional有什么意义?
首发于:Java8新特性系列-Optional有什么意义? – 微爱博客
Java 8 中有一个称为 Optional 类的新功能,它应该可以解决 NullPointerExceptions。 显然,这些让开发人员感到恼火的程度比我想象的要多。 很明显,一个对象实际上只是一个指针,而指针可以指向任何东西。 也许不再是了? 也许本世纪大多数计算机科学专业的毕业生从未真正了解过指针,因为学校已经被高级编程语言所吸引。 在这一点上我并不批评,这就像问 90 年代计算机科学专业的学生为什么他们不知道 COBOL。
这个新的 Optional 类的亮点当然是“类”这个词。 Optional 只是一个包装器,它包含对其他对象的引用,并且不是 NullPointerExceptions 的灵丹妙药。
让我们从创建一个生成 NullPointerException 的非常简单的示例开始:
import java.util.Optional; public class OptionalTest{ public String getNullString(){ return (null); } public Optional<String> getOptionalNullString(){ return (null); } public static void main(String[] args){ OptionalTest optionalTest=new OptionalTest(); String nullString=optionalTest.getNullString(); try{ System.out.println(nullString.toString()); }catch(NullPointerException x){ System.out.println("Oh the humanity, a NullPointerException!"); } } }