gpt4 book ai didi

java - 如何在 JAVA 中传递静态方法引用?

转载 作者:行者123 更新时间:2023-11-29 09:47:05 25 4
gpt4 key购买 nike

我有一个名为 Numbers 的类,在一些 static 方法中表示基本操作,例如加法、减法、乘法、除法。

现在我想创建一个名为 operate 的静态方法,它接收对前面解释的 static 方法的引用。我该怎么做?

public class Numbers {
public static long addition(long x, long y) {
return x + y;
}

public static long operate(/*a reference to a static method in Numbers class*/,
long x, long y) {
return reference(x, y);
}
}

最佳答案

您可能正在寻找 BinaryOperator<T>表示对两个相同类型的操作数的操作 T返回相同类型的结果 T作为操作数:

public static long operate(BinaryOperator<Long> binaryOperator, long x, long y) {
return binaryOperator.apply(x, y);
}

如您所见,方法声明中没有任何方法引用。您应该在那里定义参数类型,稍后您将决定在方法调用期间传递哪些实际参数:

一个匿名类:

operate(new BinaryOperator<Long>() {
public @Override Long apply(Long l1, Long l2) {
return Numbers.addition(l1, l2);
}
}, 2, 2);

一个 lambda 表达式:

operate((l1, l2) -> Numbers.addition(l1, l2), 2, 2);

或方法引用:

operate(Numbers::addition, 2, 2);

关于java - 如何在 JAVA 中传递静态方法引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41086794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com