在 Java 中将函数作为参数传递
在 Java 中,可以利用 Java 8 的 lambda 表达式将函数作为参数传递。当使用包含单个抽象方法(SAM 类型)的接口时,可以替换 lambda 表达式,从而实现简洁的代码。例如:
interface MyInterface { String doSomething(int param1, String param2); } MyInterface myInterface = (p1, p2) -> { return p2 + p1; };
或者,方法引用可以提供更清晰的语法:
new Thread(this::someMethod).start();
Pre-Java 8 Approach
之前Java 8 中,命令模式通常用于将函数作为参数传递。这涉及将函数包装在 Callable 等接口中:
public T myMethod(Callable<T> func) { return func.call(); }
例如:
public int methodToPass() { return 3; } public void dansMethod(int i, Callable<Integer> myFunc) { }
要调用该函数,将使用匿名内部类:
dansMethod(100, new Callable<Integer>() { public Integer call() { return methodToPass(); } });
请记住,这种方法本质上等同于其他语言中的函数指针。
以上是Java 中如何将函数作为参数传递?的详细内容。更多信息请关注PHP中文网其他相关文章!