UnaryOperator接受一个特定的类型参数,并返回具有相同类型参数的结果。
if-statement
有了回报
null
,是否有编译器错误?
无效的
它的论点的类型不是吗(在我的例子中是Doll)?
内置函数接口(如Consumer、UnaryOperator、Function)是否可以返回null而不是其标准返回?
这是我的密码:
import java.util.function.*;
public class Doll {
private int layer;
public Doll(int layer) {
super();
this.layer = layer;
}
public static void open(UnaryOperator<Doll> task, Doll doll) {
while ((doll = task.apply(doll)) != null) {
System.out.println("X");
}
}
public static void main(String[] args) {
open(s -> {
if (s.layer <= 0)
return null;
else
return new Doll(s.layer--);
}, new Doll(5));
}
}
谢谢!