參數和操作對象我有一個方法的Java可選在ifPresent
public String getSomething(Optional<String> name) {
StringBuilder something = new StringBuilder("Hello");
name.ifPresent(n -> something.append(n));
return something.toString();
}
我用的IntelliJ,並抱怨說,你不應該使用選配的參數,只返回類型。我也讀過,你想避免函數式編程中的副作用,你不應該操縱對象。
所以我一直在想是,如果它是不是更好做
public String getSomething(String name) {
StringBuilder something = new StringBuilder("Hello");
if (name != null) {
something.append(name);
}
return something.toString();
}
在那裏使用可選的任何好處?我可以看到的一個好處是該方法告訴您該參數是可選參數。
你爲什麼要傳遞一個可選字符串?你不知道你有一個字符串首先通過? –
請參閱http://stackoverflow.com/questions/31922866/why-should-java-8s-optional-not-be-used-in-arguments – Tunaki
@MuratK。有時候人們會在沒有參數值的情況下調用我的方法。字符串只是一個例子,在我的真實情況下它實際上是一個DateRange。然後我仍然想要返回一個值。 – uraza