Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 可选与番石榴可选_Java_Java 8_Guava - Fatal编程技术网

Java 可选与番石榴可选

Java 可选与番石榴可选,java,java-8,guava,Java,Java 8,Guava,很长一段时间以来,我一直在我的项目中使用Guava提供的Optional。现在我决定从Java7迁移到Java8,但由于我在整个项目中都使用了guava的Optional,因此我必须运行代码并进行重大更改。虽然我还不确定它是否值得更改,或者最好保持一切不变,从现在开始使用Java的可选 Java的Optional是否有任何好处或漏洞,它是否比我们在guava中拥有的更好?这两个类的API是不同的。我不会用regexp来更改这个。 我认为有三个重要的区别: Guava中可选的是抽象的,这意味着对象

很长一段时间以来,我一直在我的项目中使用
Guava
提供的
Optional
。现在我决定从Java7迁移到Java8,但由于我在整个项目中都使用了
guava
Optional
,因此我必须运行代码并进行重大更改。虽然我还不确定它是否值得更改,或者最好保持一切不变,从现在开始使用Java的
可选


Java的
Optional
是否有任何好处或漏洞,它是否比我们在
guava
中拥有的更好?

这两个类的API是不同的。我不会用regexp来更改这个。 我认为有三个重要的区别:

  • Guava中可选的是抽象的,这意味着对象是子类。在Java中,Optional是final,这意味着没有子类
  • 在番石榴中,可选的是可序列化的。在Java中,可选项不可序列化
  • 方法并不完全相同

  • 依我看,Java8的可选版本是对Guava可选版本的改编。也就是说,也许一个正则表达式可以取代所有的导入。Guavas可选是抽象的,但不允许外部包对其进行子类化。可选和Guava可选之间的差异背后的原因是什么?