为什么我需要实现 Apply in Java Guava 函数?
Why do I need to implement Apply in Java Guava function?
例如,下面是标准模式
Function<Integer, Integer> powerOfTwo = new Function<Integer, Integer>() {
@Override
public Integer apply(Integer input) {
return (int) Math.pow(input, 2);
}
};
实施apply有什么好处?写成
不是更干净吗
Function<Integer, Integer> powerOfTwo = new Function<Integer, Integer>(Integer input) {
return (int) Math.pow(input, 2);
};
是的,当然,但这就是 Java 语言的工作方式,至少在 Java 8 中引入 lambda 之前是这样。这与 Guava 无关,与Java 语言。
从 Java 8 开始,您可以只写
Function<Integer, Integer> powerOfTwo = input -> (int) Math.pow(input, 2);
...但是如果您不在 Java 8,那么语言的设计方式使您必须编写第一个版本。
例如,下面是标准模式
Function<Integer, Integer> powerOfTwo = new Function<Integer, Integer>() {
@Override
public Integer apply(Integer input) {
return (int) Math.pow(input, 2);
}
};
实施apply有什么好处?写成
不是更干净吗Function<Integer, Integer> powerOfTwo = new Function<Integer, Integer>(Integer input) {
return (int) Math.pow(input, 2);
};
是的,当然,但这就是 Java 语言的工作方式,至少在 Java 8 中引入 lambda 之前是这样。这与 Guava 无关,与Java 语言。
从 Java 8 开始,您可以只写
Function<Integer, Integer> powerOfTwo = input -> (int) Math.pow(input, 2);
...但是如果您不在 Java 8,那么语言的设计方式使您必须编写第一个版本。