为什么我需要在Java Guava函数中实现Apply?

时间:2016-08-24 18:00:40

标签: java guava

例如,以下是标准模式

Function<Integer, Integer> powerOfTwo = new Function<Integer, Integer>() {
    @Override
    public Integer apply(Integer input) {
        return (int) Math.pow(input, 2);
    }
};

实施申请有什么好处?写

会不会更清晰
Function<Integer, Integer> powerOfTwo = new Function<Integer, Integer>(Integer input) {
    return (int) Math.pow(input, 2);
};

1 个答案:

答案 0 :(得分:6)

是的,当然,但这就是Java语言的工作方式,至少在Java 8中引入lambda之前。这与Guava无关,而且与Java语言有关。

从Java 8开始,你可以写

Function<Integer, Integer> powerOfTwo = input -> (int) Math.pow(input, 2);

...但是如果您不是使用Java 8,那么语言的设计方式就会让您必须编写第一个版本。