Java 中用什么代替函数指针
在 Java 编程语言中,函数指针是一种允许传递函数的功能作为其他函数的参数,不存在。但是,还有其他方法可以实现类似的功能。
一个可行的选择是匿名内部类。考虑需要创建多个方法来执行相同的操作,除了单行代码中的微小变化之外。匿名内部类提供了一个解决方案。
要使用匿名内部类,必须定义一个接口,声明将传入的方法。例如,如果该方法采用 String 参数并返回整数,则接口类似于:
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中实现函数指针功能?的详细内容。更多信息请关注PHP中文网其他相关文章!