什么是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);
以上是 什么是Java中函数指针的最接近替代品? 的全部内容, 来源链接: utcz.com/qa/425324.html