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

回到顶部