。このことは何それは私を与えた:リストのforeach方法
一見public void update(){
objects.forEach(GameObject::update);
}
、これが良いようですが、その後、私のIDEは、あなたは次のようになりラムダ式にこれを変換することができます言っていた。
たpublic void update(IUpdater updater){
objects.forEach((object) -> object.update());
}
印象はGameObject:: update
はラムダ式のある時です。念頭に置いて、私は(object) -> object.update()
のJava 8の唯一の新しいものを匿名クラスの代わりに使っています。
public void update(){
objects.forEach(new Consumer<GameObject>() {
@Override
public void accept(GameObject object) {
object.update();
}
});
}
をそして、それがそうであるならば、私のオリジナルの方法は、GameObject::update
その方が効率的になります。
することは、この本質「objects.forEach(ゲームオブジェクト::更新)」は意味ありません。 GameObject::update
というメソッドを残しましたが、元のメソッドが効率的であれば元に戻します。
純粋にパフォーマンスに基づいて質問しています。
'GameObject :: update'は[メソッド参照]です(https://docs.oracle.com/javase/tutorial/java/javaOO/methodreferences.html) – flakes
パフォーマンスの違いは無視できます。 – marstran
"私は純粋にパフォーマンスベースで質問しています。"その時点でパフォーマンスの問題が実際に発生していることが証明される前に、このようなレベルでマイクロオプティマイゼーションを実行してはなりません。 [早すぎる最適化は悪魔です](https://en.wikipedia.org/wiki/Program_optimization#When_to_optimize) –