私が匿名のクラスについて知っているのは、あなたがクラスやインターフェースを持っていて、いくつかのクラスやインターフェースを実装またはオーバーライドする必要があるときです。匿名で、プログラムの読みやすさが向上します。しかし、私はちょっと混乱しています。将来、あなたは別のクラスのために同じインターフェースを実装する必要があると仮定します。その場合、前のクラスをリファクタリングする必要があるので、匿名クラスの他のアドバンテージがありますか?(パフォーマンスが向上しますか?)JavaのAnonymousクラスの使用例と利点は何ですか?
答えて
これはどういう意味ですか?
匿名クラスは、その名前が何を意味するのか、名前はありません。これはクラスdeclaration
とクラスのinstance
の作成を1つのステップで結合します。 匿名クラスには名前がないため、匿名クラスが定義されているクラスの外部からオブジェクトをインスタンス化することはできません。実際、匿名オブジェクトは、定義されているのと同じスコープ内からのみインスタンス化することができます。
なぜ匿名クラスを使用するのですか?
匿名のクラスは、時間を節約し、の数を減らすことができます。 java
アプリケーションを定義するために必要なファイルComparator
のような特定の状況でのみ使用されるクラスがあるかもしれません。これにより、オブジェクトの「オンザフライ」作成が可能になります。
匿名クラスを使用することをお勧めします。多くの人が広範囲に使用してlisteners
をに実装しています。
匿名クラス定義
の構文この例では、コレクションクラスのソート()メソッドに渡されたコンパレータの匿名クラスの定義を示しています。 aListは、ソートされるべきデータの有効なリストであると仮定する。
Collections.sort (aList,
new Comparator() { // implements the IF
public int compare (ObjectType o1, ObjectType o2) throws ..{
//.... implementation for compare()
} // end of compare()
} // end of Comparator implementation
); // closed paren for sort() and end of statement semicolon
ルール:
匿名クラスは常にスーパークラスを拡張するか、インターフェイスを実装しますが、それは明示的に拡張または句を実装することはできません必要があります。
匿名クラスは、すべての抽象メソッドをスーパークラスまたはインターフェイスに実装する必要があります。
匿名クラスは、常にインスタンスを作成するためにスーパークラスのデフォルトのコンストラクタを使用します。
これの少なくとも一部は他のソースからそのままコピーされています。例えば、 http://androidhello.com/androidEbooks/Android-Java.php?Ebooks-Android=2649 - クレジットが必要な場合は、クレジットを記入してください。 –
- 1. サプライヤをJavaで使用する利点は何ですか?
- 2. Python 3を使用する利点/利点は何ですか?
- 3. プロキシキャッチサーバーを使用する利点と欠点は何ですか?
- 4. DispatchingAndroidInjector <>と他のdagger.androidクラスを使用する利点は何ですか?
- 5. ProguardはJavaのAnonymousクラスのAnonymousクラスを削除します
- 6. インターフェイスと抽象クラスの利点は何ですか?
- 7. 使用する利点何
- 8. Java:「インポート」ではなくフル・クラスのパスを使用する利点は何ですか?
- 9. public anonymous Javaの内部クラス
- 10. 埋め込みObjectifyクラスを使用する利点は何ですか?
- 11. 内部クラスをJavaで静的にする利点は何ですか?
- 12. シングルトンクラスの子クラスを作成する利点は何ですか?
- 13. 使用して、インターフェイスの利点は何ですか
- 14. Kafka SimpleConsumer(低レベルコンシューマ)の使用例/利点
- 15. MVC 3のKnockout Javaスクリプトライブラリの主な利点は何ですか
- 16. JavaでBlocking Queueの利点は何ですか?
- 17. アンドロイドのJsonレスポンス用のpojoクラスを作成する利点は何ですか?
- 18. TextBox上でRichTextBoxを使用する利点は何ですか?
- 19. メソッドシグネチャでジェネリックを使用する利点は何ですか?
- 20. MVVMLightでSimpleIoCを使用する利点は何ですか?
- 21. C#でインターフェイスを使用する利点は何ですか?
- 22. WebアプリケーションでEJBを使用する利点は何ですか?
- 23. wpfでWeb APIを使用する利点は何ですか?
- 24. pgbouncerでトランザクションプーリングを使用する利点は何ですか?
- 25. __iter __()でyieldを使用する利点は何ですか?
- 26. Pythonでcimportを使用する利点は何ですか?
- 27. ThreadPoolExecutorでWaterMarkExecutorを使用する利点は何ですか?
- 28. AWSでDockerを使用する利点は何ですか?
- 29. ErlangでRabbitMQを使用する利点は何ですか?
- 30. C#MVC:Modelbindersを使用することの本当の利点は何ですか?
http://stackoverflow.com/questions/355167/how-are-anonymous-inner-classes-used-in-java – Unknown
どのように使い勝手と利点が異なるのか、私はそれがどのようにパフォーマンスを改善するか尋ねました。 –
@Faizan http://stackoverflow.com/questions/3028341/java-anonymous-class-efficiency-implications –