簡體   English   中英

Java-檢查數字是否為Null,否則指定默認字符串值

[英]Java - Check Not Null for a number, else assign default string value

我正在尋找一種方法來根據值是否為null來設置變量的默認值。

有問題的值是雙精度型,默認值(如果該值為null)應為字符串。

我嘗試使用以下方式,但失敗了,因為.orElse需要一個雙精度(與“值”相同的數據類型)。 有什么我可以用來實現的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");

由於賦值運算符的左側可以是DoubleString ,因此最好的方法是將其類型指定為Object

這將起作用:

Object value2 = Optional.<Object>ofNullable(value).orElse("not found");

(即,在DoubleString的類層次結構中,唯一的共享類是Object)

這取決於您具有null時要執行的操作。

如果可以使用默認的long值-請使用您的方法,而不是將字符串放在orElse的默認值。

如果你只是想知道,如果一個空的傳遞,如果這樣做不同的事情,但你不希望有==null ,則可以使用Optional::isPresent內部調用if

如果沒有值不是可以忍受的狀態,則可以使用Optional::orElseThrow引發異常。

最后,如果您只想做一些確實有價值的事情,請查看Optional::ifPresent這是最適合此方案的方法。


如果您詳細說明用例,我將嘗試微調此答案以使其更適合。

這些都是Java 8的API,在更高版本中,您具有更大的靈活性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM