参数和操作对象我有一个方法的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