Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 给出一个函数作为参数_Java - Fatal编程技术网

Java 给出一个函数作为参数

Java 给出一个函数作为参数,java,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); } } draw(void myFu

可能重复:

我怎样才能给出一个函数作为参数

例如:

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);
   }
}
draw(void myFunc){
对于(int i=0;i<10;i++){
myFunc();//运行它
椭圆(50,50,5,5);
}
}

你不能。Java不将函数视为第一类对象。您可以使用包含要调用的函数的方法定义接口

interface Confetti {
   public void draw();
}

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

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

您让我们开始的代码中有很多错误。也许您可以查看一下反射: