我正在制作一个用于在处理中进行分形的框架,但是,我需要使用函数作为类的构造函数的参数。 类似的东西:
class Fractal {
String name;
void initialize;
Fractal(String Name, void setup) {
...
}
}
答案 0 :(得分:1)
我猜你是来自JavaScript背景?
传统上,Java并没有真正有办法做到这一点。相反,您将传递一个匿名接口实例,如下所示:
interface Runner{
public void run();
}
class Fractal {
String name;
Runner initialize;
Fractal(String name, Runner setup) {
...
}
}
Runner r = new Runner(){
public void run(){
// whatever
}
}
Fractal fractal = new Fractal("name here", r);
请注意,Java提供了一个Runnable
接口,您可以使用它而不是创建自己的接口,但我想在此处拼写它以使其更明显。
从Java 8开始,您可以将对函数的引用作为参数传递。这称为 lambda函数。谷歌搜索“Java lambda函数”将返回大量的结果。
来自this answer:
public void pass() {
run(()-> System.out.println("Hello world"));
}
public void run(Runnable function) {
function.run();
}
根据您使用Processing的方式,您可能会遇到第一种方法,因为我认为Processing编辑器还不支持Java 8。