java - Java 中最接近函数指针的替代品是什么?

我有一个大约十行代码的方法。我想创建更多的方法来做同样的事情,除了一个小的计算会改变一行代码。这是一个完美的应用程序,用于传递函数指针以替换该行,但 Java 没有函数指针。我最好的选择是什么?

最佳答案

匿名内部类

假设你想要一个函数传入一个返回 intString 参数。
首先,如果您不能重用现有接口(interface),则必须定义一个接口(interface),该接口(interface)作为其唯一成员。

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);

https://stackoverflow.com/questions/122407/

相关文章:

java - Java 中如何使用匿名内部类?

java - 使用 appcompat v7 更改 EditText 底线颜色

java - 如何在 Java 项目中查找未使用/死代码

java - 使用 Mockito 模拟静态方法

java - 在 Java 中检查字符串是否为空或 null

java - 如何在 Java 中进行 URL 解码?

java - 在Android应用程序中存储用户设置的最合适方法是什么

java - 如果可以使用 synchronized(this),为什么还要使用 Reentrant

java - Mockito:试图监视方法正在调用原始方法

java - 如何使用 LocalDateTime 解析/格式化日期? (Java 8)