Java 如何在此场景中使用番石榴可选
我有一个场景,我想使用番石榴可选,但有一个问题: 方法如下:Java 如何在此场景中使用番石榴可选,java,guava,optional,Java,Guava,Optional,我有一个场景,我想使用番石榴可选,但有一个问题: 方法如下: private static void method(Optional<Object> myOptional) { if(myOptional.isPresent()) { .... } } private静态无效方法(可选myOptional){ if(myOptional.isPresent()){ .... } } myOptional可以包含非null值、null值或缺席()。在这种情
private static void method(Optional<Object> myOptional) {
if(myOptional.isPresent()) {
....
}
}
private静态无效方法(可选myOptional){
if(myOptional.isPresent()){
....
}
}
myOptional可以包含非null值、null值或缺席()。在这种情况下,null是有效的输入
在该方法中,我希望使用不同的方法处理非null值和null值,但忽略缺少的值
但是,如果我在这里使用isPresent,空值也将被忽略。但如果使用“get”方法,缺少的值将抛出异常。如果使用orNull,则缺少的值也返回为null
我不知道我在这里该做什么。但我认为创建Optional的原因是为了区分null和缺席,以便null成为有效的有意义的值。但看起来在Optional中没有允许我实现用例的方法
有人能帮忙吗?谢谢。你不能那样做
javadoc明确地说:可选的
可能包含一个非空引用。永远不要使用null
one
您可以做的是创建一个可选的.fromNullable(无论什么).orNull()
。但是,可选的
永远不会区分空值和不存在的值,因为这不是它的本意 我建议不要将Optional
用作方法的参数类型。这是最好的返回类型。如果将其用作参数,则有更好的选项。。。例如,方法的两个重载,method()
和method(Object)
。