Java 处理,使用匿名函数

Java Processing, using an anonymous function

我只是想知道这是否可能。作为 Web 开发人员,我已经使用 Javascript 4 年了,所以我非常习惯在我的代码中使用匿名函数。现在正在测试 Processing,我想看看如何完成我通常使用 Javascript.

所做的所有事情

在Java脚本中,我使用这样的函数:

fn.call(instance,arg1, arg2);

fn.apply(instance,args);

...但是,我无法在 Processing 中执行类似的操作。

我正在尝试调用 "anonymous function" 和 运行 实例命名空间中的函数:

public void resetHealth(){
    this.health = 10;
}

class Player{
    public int health;
    Player(){
        super();
        this.health = 10;
    }
}

Player p = new Player();

//where it gets prickly:

resetHealth.invoke(p);

预期结果:print p.health; //returns 0

我想知道我正在做的事情对 Java 是否有误。但是,这可能与Processing有关。

关于长运行我建议查看Daniel Shiffman's OOP Tutorial

您应该将 resetHealth() 函数移到播放器中 class, 然后使用点符号调用它(例如 p.resetHealth()

class Player {
  public int health;
  Player() {
    super();
    this.health = 10;
  }
  public void resetHealth() {
    this.health = 10;
  }
}

void setup() {
  Player p = new Player();

  //test, set lower health
  p.health = 3;
  println("lowed health to", p.health);

  //test, call reset health
  p.resetHealth();
  println("reset health to", p.health);
}

如果您已经习惯了 JavaScript,您应该会在使用 p5.js 的同时感到宾至如归,同时仍然使用大部分 Processing 好东西。