在java中使用optional时,如何在条件块中放入null检查?

在java中使用optional时,如何在条件块中放入null检查?,java,optional,Java,Optional,这是密码 Optional<Buyer> buyerOptional = Optional.ofNullable(buyerRepository.findById(buyerId).orElse(null)); Buyer buyer = buyerOptional.get(); if (buyer != null) { } else if (buyerOptional == null) { response = utility.createResponse(500

这是密码

Optional<Buyer> buyerOptional = Optional.ofNullable(buyerRepository.findById(buyerId).orElse(null));
Buyer buyer = buyerOptional.get();
if (buyer != null) {
    
} else if (buyerOptional == null) {
    response = utility.createResponse(500, KeyWord.ERROR, "Invalid buyer");
}
optionalbuerooptional=Optional.ofNullable(buyerRepository.findById(buyerId.orElse(null));
买方=买方可选.get();
如果(买方!=null){
}else if(buyerOptional==null){
response=utility.createResponse(500,关键字.ERROR,“无效买家”);
}

我想进入else if block,如果我能得到任何建议,那就太好了。

首先,您不需要再次创建
可选
,因为
findById
已经返回
可选
。您可以使用
isPresent()
检查值是否存在

Optional<Buyer> buyerOptional = buyerRepository.findById(buyerId);
if (buyerOptional.isPresent()) {
   Buyer buyer = buyerOptional.get();
   ... // preparing response
} else {
    response = utility.createResponse(500, KeyWord.ERROR, "Invalid buyer");
}
optionalbuerooptional=buyerRepository.findById(buyerId);
如果(buyerOptional.isPresent()){
买方=买方可选.get();
…//准备响应
}否则{
response=utility.createResponse(500,关键字.ERROR,“无效买家”);
}

首先,您不需要再次创建
可选
,因为
findById
已经返回
可选
。您可以使用
isPresent()
检查值是否存在

Optional<Buyer> buyerOptional = buyerRepository.findById(buyerId);
if (buyerOptional.isPresent()) {
   Buyer buyer = buyerOptional.get();
   ... // preparing response
} else {
    response = utility.createResponse(500, KeyWord.ERROR, "Invalid buyer");
}
optionalbuerooptional=buyerRepository.findById(buyerId);
如果(buyerOptional.isPresent()){
买方=买方可选.get();
…//准备响应
}否则{
response=utility.createResponse(500,关键字.ERROR,“无效买家”);
}

存储库的
可选
返回类型的全部要点是避免
null
,这是您引入的,并且会进一步影响您自己。问题中并没有真正描述完整的情况,但通常经过适当的抽象,它的使用非常简单.map(..).orElse*(..)存储库的
可选返回类型的全部要点是避免
null
,您已经介绍了这一点,并对其进行了进一步的分析。问题中并没有真正展示完整的图片,但通常通过适当的抽象,它的使用非常简单。map(..).orElse*(..)@Naman因为我不知道响应处理的操作,如果在响应处理中使用了多个语句,最好使用if else,我认为。@Naman因为我不知道响应处理的操作,如果在响应处理中使用了多个语句,最好使用if else。