在Java中,最接近函数指针的替代品是什么?
2022-08-31 05:07:01
我有一个大约十行代码的方法。我想创建更多执行完全相同操作的方法,除了一个将更改一行代码的小计算。这是一个完美的应用程序,用于传入函数指针以替换该行,但Java没有函数指针。我最好的选择是什么?
我有一个大约十行代码的方法。我想创建更多执行完全相同操作的方法,除了一个将更改一行代码的小计算。这是一个完美的应用程序,用于传入函数指针以替换该行,但Java没有函数指针。我最好的选择是什么?
匿名内部类
假设您希望使用返回 .
首先,您必须定义一个接口,如果无法重用现有接口,则该函数作为其唯一成员。String
int
interface StringFunction {
int func(String param);
}
采用指针的方法将只接受如下实例:StringFunction
public void takingMethod(StringFunction sf) {
int i = sf.func("my string");
// do whatever ...
}
这样称呼:
ref.takingMethod(new StringFunction() {
public int func(String param) {
// body
}
});
编辑:在Java 8中,您可以使用lambda表达式调用它:
ref.takingMethod(param -> bodyExpression);