给一个函数作为参数

时间:2012-02-28 19:33:34

标签: java

  

可能重复:
  How to pass a function as a parameter in Java?

如何将函数作为参数?

例如:

for(Confetti c : confetti) {
   b.draw(someFunction(){strokeWeight(random(10));
}

在五彩纸屑课中会有像

这样的东西
draw(void myFunc){
   for(int i = 0; i < 10; i++) {
    myFunc(); // run it
    ellipse(50, 50, 5, 5);
   }
}

1 个答案:

答案 0 :(得分:2)

你做不到。 Java不会将函数视为第一类对象。你可以做的是用一个包含你想要调用的函数的方法定义一个接口。

interface Confetti {
   public void draw();
}

class DrawRandomStroke implements Confetti {
 public void draw() {
      strokeWeight(random(10));
}

然后将DrawRandomStroke对象传递给您的方法。如果你想使用支持你正在尝试做的并且仍然在java世界中的语言,请查看groovy或scala。

相关问题