Java 方法签名如何简写

448 阅读1分钟

我要实现一个功能 求出一个三位数的各个位数上的立方和,比如 321 => 9+8+1 = 18

如果是 js

我可能会有一段代码 
const f = () => {
    ...
    const p = Math.pow; // 我只是希望在这个作用域简写一下 Math.pow 这个方法签名 因为他太长了
    return p(a, 3) + p(b, 3) + p(c, 3)
}

在 java 中, 现在来看好像只能声明一个静态方法?


class cal {
    static double p (int a) {
        return Math.pow(a, 3)
    }
    
    static int f (int a) {
        ...
        return (int)(p(a) + p(b) + p(c));
    }
}

其实上面的问题主要在于,Java 强类型,缩写 p 方法的类型没有找到。

java.util.function 包中仔细查看类型 可以逼近使用下面的语法

BinaryOperator<Double> p = Math::pow;
sout("p.apply(a, 3)")