为什么我需要实现 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,那么语言的设计方式使您必须编写第一个版本。