タグ付けされた質問 「anonymous-class」

15
匿名クラスでアクセスできるのは最終的な変数だけなのはなぜですか?
aここでのみ最終的にすることができます。どうして?プライベートメンバーとして保持せずaにonClick()メソッドに再割り当てするにはどうすればよいですか? private void f(Button b, final int a){ b.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { int b = a*5; } }); } 5 * aクリックしたときにを返すにはどうすればよいですか?というのは、 private void f(Button b, final int a){ b.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { int b = a*5; return b; // …


11
匿名クラスにパラメーターを渡す方法は?
匿名クラスにパラメーターを渡したり、外部パラメーターにアクセスしたりすることは可能ですか?例えば: int myVariable = 1; myButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // How would one access myVariable here? } }); 実際の名前付きクラスとしてリスナーを作成せずに、リスナーがmyVariableにアクセスしたり、myVariableを渡したりする方法はありますか?

2
Java匿名クラスから「this」にアクセス
次のコードがあるとします: public interface Selectable { public void select(); } public class Container implements Selectable { public void select() { ... } public void createAnonymousClass() { Selectable s = new Selectable() { public void select() { //see comment below. } }; } } Container.select()匿名クラスのselect()メソッド内からアクセスしたい。ただし、this.select()再び匿名クラスのselect()メソッドを呼び出します。 私の提案は: たとえば、フィールドをコンテナに導入します private Container self = this; …

7
Java8ラムダと匿名クラス
Java8が最近リリースされ、その新しいラムダ式が本当にかっこいいように見えるので、これが私たちがこれまで使用していた匿名クラスの終焉を意味するのかと思っていました。 私はこれについて少し調べていて、Lambda式が体系的にそれらのクラスをどのように置き換えるかについていくつかのクールな例を見つけました。たとえば、コレクションのソートメソッドは、Comparatorの匿名インスタンスを取得してソートを実行するために使用していました。 Collections.sort(personList, new Comparator<Person>(){ public int compare(Person p1, Person p2){ return p1.firstName.compareTo(p2.firstName); } }); 今ラムダを使用して行うことができます: Collections.sort(personList, (Person p1, Person p2) -> p1.firstName.compareTo(p2.firstName)); そして、驚くほど簡潔に見えます。だから私の質問は、ラムダの代わりにJava8でそれらのクラスを使い続ける理由はあるのでしょうか? 編集 同じ質問ですが、反対の方向で、匿名クラスの代わりにラムダを使用する利点は何ですか?ラムダは単一のメソッドインターフェイスでのみ使用できるので、この新しい機能はいくつかの場合にのみ使用されるショートカットだけですか、それとも本当に便利ですか?


6
Java 8Lambda式-ネストされたクラスの複数のメソッドはどうですか
新機能については、http://www.javaworld.com/article/2078836/java-se/love-and-hate-for-java-8.htmlで読んでいます。 私は以下の例を見ました: 匿名クラスの使用: button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { System.out.println("Action Detected"); } }); ラムダの場合: button.addActionListener(e -> { System.out.println("Action Detected"); }); MouseListener匿名クラス内に複数のメソッドを実装したい場合、誰かがaで何をしますか。例: public void mousePressed(MouseEvent e) { saySomething("Mouse pressed; # of clicks: " + e.getClickCount(), e); } public void mouseReleased(MouseEvent e) { saySomething("Mouse released; # of clicks: " + …

3
Optional.orElseが匿名型でコンパイルされない
私はOptionalと匿名クラスを使用して奇妙な問題に遭遇しました: public class Foo { interface Bar { } void doesNotCompile() { Optional.of(new Bar() { }).orElse(new Bar() { }); } void doesNotCompile2() { final Bar bar = new Bar() { }; Optional.of(new Bar() { }).orElse(bar); } void compiles1() { final Bar bar = new Bar() { }; Optional.of(bar).orElse(new Bar() { …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.