從Java 8開始,存在方法參考。我有一個簡單的接口,我希望使用現有的(最好在一個java.something
包中)方法引用來實現。用於基本方法參考的Java等效Python運算符模塊
public class Calculator {
private interface BinaryFunction<A, B, R> {
R apply(A a, B b);
}
private <A, B, R> R apply(BinaryFunction<A, B, R> binaryFunction, A a, B b) {
return binaryFunction.apply(a, b);
}
public static void main(String [] args) {
Calculator calculator = new Calculator();
calculator.apply((a, b) -> a + b, 1, 2); // 3
calculator.apply(Math::addExact, 1, 2); // 3
calculator.apply((a, b) -> a || b, true, false); // true
// calculator.apply(?::?, true, false); // true
}
}
Math::addExact
是不一樣的+
,但它是足夠接近我 - 其實我更喜歡讓ArithmeticException("integer overflow")
拋出我的目的。
如果這是Python,我會使用operator模塊,但我不知道Java中是否有這樣的事情。
那麼java.something
包中有沒有靜態方法,可以在?::?
部分中找到,這相當於||
運算符?
你問了,做''||在對輸入的方法? – dimo414
@ dimo414是的。它應該是一個內置的包。 – michaelsnowden