我在你的Checker课程中做了一些对我有意义的修改.我删除了所有原始类型,并在执行中使用了value成员.我添加了一个返回类型的execute,以便能够打印其结果.
class Checker{
private T value;
private Function callback;
private Checker(T value) {
this.value = value;
}
public static Checker when(String o) {
return new Checker<>(o);
}
public static Checker when(int o) {
return new Checker<>(o);
}
public Checker then(Function callback) {
this.callback = callback;
return this;
}
public T execute() {
return this.callback.apply(value);
}
public static void main (String[] args) {
Checker.when("123").then(str -> {
return "." + str + ".";
}).execute();
Checker.when(123).then(i -> {
return i + 100;
}).execute();
}
}
现在当你检查你的课时:
System.out.println (Checker.when("123").then(str -> "." + str + ".").execute());
System.out.println (Checker.when(123).then(i -> i + 100).execute());
你得到:
.123.
223