Java 8 JAVA8可选,用于返回布尔值或引发异常

Java 8 JAVA8可选,用于返回布尔值或引发异常,java-8,Java 8,如果optionalTest为非空,我想返回true,否则抛出异常 这是可行的,但我认为有更好的方法: if(optionalTest.isPresent()) { return true; } else { throw new TestException(); } 我尝试使用三元表达式,但无法编译: return optionalTest.isPresent() ? true : throw new TestException(); 我还尝试使用了orelsetrow,但最

如果
optionalTest
为非空,我想返回
true
,否则抛出异常

这是可行的,但我认为有更好的方法:

if(optionalTest.isPresent()) {
    return true;
} else {
    throw new TestException();
}
我尝试使用三元表达式,但无法编译:

return optionalTest.isPresent() ? true : throw new TestException();
我还尝试使用了
orelsetrow
,但最后我得到的是一个字符串,而不是
true

return optionalTest.orElseThrow(TestException::new);

我无法想象在任何情况下这都是一个好主意;如果这是一个好主意,那么您的第一个代码片段似乎是实现它的最佳方式

但如果这对你来说真的很重要,你可以把它作为一个单独的语句来写:

return optionalTest.map(s -> true).orElseThrow(TestException::new);

使用将您的
Optional
转换为一个
Optional
,该值不存在或包含值
Boolean.TRUE

请尝试此
optionalTest.map(o->TRUE).OrelsThrow(()->throw new TestException())等待,为什么要这样做?我想检查optionalTest是否不为null,并继续其他代码逻辑。@developer optionalTest不应为null,因为它是可选对象。如果它为null,则不能使用可选功能。它可以为空,这意味着它的值为null。