簡體   English   中英

Java處理,使用匿名函數

[英]Java Processing, using an anonymous function

我只想知道這是否可行。 作為Web開發人員,我已經使用Java四年了,所以我很習慣在代碼中使用匿名函數。 現在測試出Processing,我想看看我該如何用Java正常完成所有工作。

在Javascript中,我使用如下函數:

fn.call(instance,arg1, arg2);

要么

fn.apply(instance,args);

...但是,我無法在Processing中執行類似的操作。

我正在嘗試調用“匿名函數”並在實例的名稱空間中運行該函數:

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 print p.health; //returns 0

我想知道我在做什么對於Java是錯誤的。 但是,可能與處理有關。

從長遠來看,我建議查看Daniel Shiffman的OOP教程

您應該將自己的resetHealth()函數移到Player類內,然后使用點表示法調用它(例如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.j​​s的同時應該仍會使用大多數Processing好東西,這會讓您感到賓至如歸。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM