有没有真正的理由使用Opport.of()?
我在这里读到为什么应该过度使用,但答案根本没有让我满意,所以我问略有不同:Optional.of()
Optional.ofNullable()
如果您确定您的方法不会返回,为什么要使用?据我所知,它或多或少的唯一目的是提醒“方法的用户”,他可能必须处理-值。如果他不必处理 -值,他为什么要为 ?null
Optional
null
null
Optional
我问,因为我最近让我的服务层返回可选而不是空值(在某些情况下)。我使用并非常困惑,当它抛出一个NullPointer。Optional.of()
我所做的示例:
Optional valueFromDB = getUserById("12");
User user = valueFromDB.get();
.....
public Optional<User> getUserById(String id) {
//...
return Optional.of(userRepository.findOne(id)); // NullPointerException!
}
如果null是不可能的,我不明白为什么人们会把它包装在.链接答案中的家伙说:“好吧,如果发生NullPointer,它会立即发生!但我真的想要这样吗?如果一个的唯一目的是,提醒程序员谁得到这样一个对象,记住(他必须解开它),我为什么要在包装时拥有呢?Optional
Optional
null
NullPointerException
编辑:我需要编辑问题,因为它被标记为重复,即使我已经从一开始就链接了所述问题。我也确实解释了为什么答案没有让我满意,但现在我需要编辑我的文本并解释。但这里有一些我想问的问题的附录,因为我得到了5个答案,每个人都回答了不同的情况,但没有一个完全涵盖了我在这里试图问的问题:
有没有一个原因,Optional.of(null)是不可能的,他们专门为null情况添加了Opport.ofNullable()?
使用流应该不是我对实现的想法的问题。我从您的回答中获得了很多见解,谢谢。但真正的问题直到现在才得到解答,据我所知/阅读/理解。也许我应该问:“如果我们删除该方法并且只允许在Java 9中,除了向后兼容性之外,还会有任何问题吗?Optional.of()
Optional.ofNullable()