我正在寻找一种方法,可以根据值是否为空来设置变量的默认值。
所涉及的值是一个双精度浮点数,如果该值为空,则默认值应为一个字符串。
我尝试使用以下方式,但失败了,因为".orElse"期望一个双精度浮点数(与"value"具有相同的数据类型)。 是否有任何Java方法可用于实现此目的?
Double value = 8.0;
Optional.ofNullable(value).orElse("not found")
我正在寻找一种方法,可以根据值是否为空来设置变量的默认值。
所涉及的值是一个双精度浮点数,如果该值为空,则默认值应为一个字符串。
我尝试使用以下方式,但失败了,因为".orElse"期望一个双精度浮点数(与"value"具有相同的数据类型)。 是否有任何Java方法可用于实现此目的?
Double value = 8.0;
Optional.ofNullable(value).orElse("not found")
String strDouble = Optional.ofNullable(value).map(Objects::toString).orElse("not found");
您的方法的编译版本:
Object result = Optional.<Object>ofNullable(value).orElse("not found");
Object value2 = Optional.<Object>ofNullable(value).orElse("not found");
Double
和 String
的类层次结构中唯一共享的类是 Object
。)这取决于你在拥有 null 值时想要做什么。
如果你可以使用默认的长整型数值,那么就使用你的方法,而不是将字符串放入 orElse
中,而是将默认值放入其中。
如果你只想知道是否传递了 null 值,如果是,则执行不同的操作,但又不想使用 ==null
,那么你可以在 if
中使用 Optional::isPresent
调用。
如果没有值是你无法容忍的状态,那么你可以使用 Optional::orElseThrow
抛出异常。
最后,如果你只想在确实拥有值时执行某些操作,请查看 Optional::ifPresent
- 它最适合这种情况。
(value != null) ? value : "not found"
可以表示为:若值不为空,则返回该值,否则返回“not found”。 - Liftoff(value != null) ? ""+value : "not found"
。 - Liftoffdouble
类型的默认值应该是一个String
。这有何用处? - user10762593