ホームページ >Java >&#&チュートリアル >Java でメソッドの参照渡しをシミュレートするにはどうすればよいですか?
Java でメソッドの参照渡しをシミュレートする方法
Java では、メソッドをパラメータとして渡すことはとらえどころのない概念のように思えるかもしれませんが、同様の機能を実現できる別のアプローチもあります。そのような手法の 1 つは、インターフェイスの利用です。
インターフェイス自体は特定のメソッド実装を表すことはできませんが、メソッドのシグネチャを指定するコントラクトを定義します。これにより、インターフェイスに準拠し、目的のメソッド実装を提供する匿名の内部クラスまたはラムダ式を作成できます。
メソッドの参照渡しの動作を模倣することを目的とした次の例を考えてみましょう。
public void setAllComponents(Component[] myComponentArray, Command command) { for (Component leaf : myComponentArray) { if (leaf instanceof Container) { //recursive call if Container Container node = (Container) leaf; setAllComponents(node.getComponents(), command); } //end if node command.execute(leaf); } //end looping through components }
ここで、Command は実行メソッドを定義するインターフェースです。その後、呼び出す実際のメソッド実装を表すこのインターフェイスのインスタンスを作成できます。
このアプローチを使用するには、次のように setAllComponents メソッドを呼び出します。
setAllComponents(this.getComponents(), new Command() { @Override public void execute(Component component) { // Code to execute for each component } });
この手法特定のメソッド実装を setAllComponents メソッドに渡すことができ、参照渡し機能のようなものを提供します。
以上がJava でメソッドの参照渡しをシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。