これが可能かどうかを知りたいだけです。私はWeb開発者として4年間Javascriptを使用してきました。だから私は自分のコードで匿名関数を使うのによく慣れています。 Processingを試してみると、私はJavascriptで普通にやることのすべてをどのように行うことができるのか見たいと思っています。 JavaScriptでJava処理、匿名関数を使用
、私はそうのような関数を使用します。
fn.call(instance,arg1, arg2);
または
fn.apply(instance,args);
...しかし、私は、処理中にそのようなことを行うことができませんよ。
私は「無名関数」を呼び出すと、インスタンスの名前空間に関数を実行しようとしています:
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のやり方は間違っています。しかし、それは処理と関係しているかもしれません。長期的には
なぜresetHealthはPlayerクラス外の関数ですか? 'this'はそのメソッドで文脈や意味を持ちません。 –
その理由は、クラスの中に関数を置くのではなく、関数を共有して渡すことができるからです。それを行う方法はありますか? –
Java 8 [メソッド参照](https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html)を参照してください。しかし、単純に[interfaces](https://docs.oracle.com/javase/tutorial/java/concepts/interface.html)を定義し、代わりにそのインタフェースを実装するオブジェクトを渡すことをお勧めします。 「オブジェクトをオブジェクト内に配置する」は良いです:) – paulsm4