Java 函数指针的替代品
Java 缺乏函数指针可能会阻碍模块化、可重用代码的创建。不过,有一个解决方案:匿名内部类。
考虑需要多个方法执行除单行计算之外的相同操作。理想情况下,传递函数指针就足够了,但 Java 不支持这一点。另一种方法是定义一个接口,将所需的函数作为其唯一成员。
例如,定义一个接受字符串并返回整数的函数:
interface StringFunction { int func(String param); }
现在,一个接受函数指针的方法可以接收 StringFunction 实例:
public void takingMethod(StringFunction sf) { int i = sf.func("my string"); // do other operations ... }
调用此方法将如下所示:
ref.takingMethod(new StringFunction() { public int func(String param) { // Implementation for the single changed line } });
在 Java 8 中,可以使用 lambda 表达式进一步简化:
ref.takingMethod(param -> { // Implementation for the single changed line });
通过利用匿名内部类或 lambda 表达式,Java 程序员可以实现函数指针的功能,提供灵活性和代码可重用性。
以上是Java 如何模仿模块化代码的函数指针?的详细内容。更多信息请关注PHP中文网其他相关文章!