什么是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








