Was ich weiß über anonyme Klasse ist, wenn Sie eine Klasse oder Schnittstelle haben, und nur einige Ihrer Code implementieren oder überschreiben einige Klasse oder Schnittstelle Anonym, erhöht es die Lesbarkeit des Programms. Aber ich bin ein wenig verwirrt angenommen, in Zukunft müssen Sie die gleiche Schnittstelle für verschiedene Klassen implementieren, also in diesem Fall müssen Sie vorher Klasse umgestalten, gibt es also noch einen anderen Vorteil der anonymen Klasse? (Ist es die Leistung verbessert?)Was ist der Anwendungsfall und der Vorteil der anonymen Klasse in Java?
Antwort
Was bedeutet das?
Eine anonyme Klasse ist nur, was ihr Name bedeutet - sie hat keinen Namen. Es kombiniert die Klasse und die Erstellung eines instance
der Klasse in einem Schritt. Da anonyme Klassen keinen Namen haben, können Objekte nicht von außerhalb der Klasse instanziiert werden, in der die anonyme Klasse definiert ist. Tatsächlich kann ein anonymes Objekt nur aus dem gleichen Bereich instanziiert werden, in dem es definiert wurde.
Warum eine anonyme Klasse verwenden?
Anonyme Klassen können Zeit sparen und reduzieren die Anzahl der. java
Dateien zum Definieren einer Anwendung erforderlich. Möglicherweise verfügen Sie über eine Klasse, die nur in einer bestimmten Situation wie Comparator
verwendet wird. Dies ermöglicht eine "on the fly" -Erstellung eines Objekts.
Möglicherweise möchten Sie anonyme Klassen verwenden; viele Leute verwenden sie ausgiebig, um listeners
auf GUIs
zu implementieren.
Die Syntax für Anonymous Klassendefinitionen
Dieses Beispiel zeigt eine anonyme Klassendefinition für einen Komparator, der auf die sort() Methode in der Klasse Collections geben wird. Angenommen, aList ist eine gültige Liste von Daten, die sortiert werden sollen.
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
Regeln:
Eine anonyme Klasse muss immer eine Superklasse erweitern oder eine Schnittstelle implementieren, aber es eine explizite erstreckt nicht haben kann oder Klausel implementiert.
Eine anonyme Klasse muss alle abstrakten Methoden in der Superklasse oder der Schnittstelle implementieren.
Eine anonyme Klasse verwendet immer den Standardkonstruktor der Superklasse, um eine Instanz zu erstellen.
Mindestens ein Teil davon wird wörtlich aus anderen Quellen kopiert. Siehe z.B. http://androidhello.com/androidEbooks/Android-Java.php?Ebooks-Android=2649 - Bitte geben Sie Kredit, wo Kredit fällig ist. –
- 1. Was ist der Vorteil der Base64-Codierung?
- 2. Typedef der anonymen Klasse
- 3. Was ist der Zugriffstyp einer anonymen inneren Klasse?
- 4. Java "Methode Serialisierung" der anonymen Klasse
- 5. Was ist der Anwendungsfall der Benachrichtigung in RxJS?
- 6. Was ist der Zugriffsmodifizierer des Konstruktors einer anonymen Klasse?
- 7. Was ist der Anwendungsfall für ContextCompat.checkSelfPermission?
- 8. Was ist der Zweck von anonymen Typen?
- 9. Was ist der Vorteil der variablen erklärt in für
- 10. Was ist der Vorteil von Bridge Pattern
- 11. Was ist der zusätzliche Vorteil der Erstellung von Konstruktor in Java?
- 12. Was ist der Vorteil von extend.js?
- 13. Was ist der Vorteil dieser Konstruktordefinition?
- 14. Was ist der Vorteil von "Lambda-Ausdrücken"?
- 15. Was ist der Vorteil von .c-Dateien?
- 16. Was ist der Vorteil dieses indirekten Funktionsaufrufs?
- 17. Was ist der Vorteil der Verwendung von Feder REST Docs
- 18. Was ist der Vorteil der Verwendung von Async mit MVC5?
- 19. Was ist der Vorteil zu definieren, eine Funktion außerhalb der Klasse in Python-Programm
- 20. Was ist der Anwendungsfall von "read_to" in Schienen?
- 21. Vorteil der lokalen Klassen Java
- 22. Was ist der Anwendungsfall für "break Identifier" in JavaScript?
- 23. Was ist der Vorteil einer inneren Klasse als statisch mit Java zu machen?
- 24. Was ist der Unterschied zwischen aufgeblähter Klasse und markierter Klasse?
- 25. Was ist der $ 1 in der Klasse Dateinamen? Hier
- 26. Was ist der spezifische Anwendungsfall des "Richtungs" -Stils?
- 27. Was ist der Anwendungsfall für D's Kompilierzeit Auswertung
- 28. Was ist der Unterschied zwischen getHost- und getAuthority-Methoden in der URL-Klasse in Java?
- 29. Was ist der Anwendungsfall für diesen Modifizierer zsh precommand '-'
- 30. Was ist die tatsächliche Verwendung der Schnittstelle in Java?
Siehe http://stackoverflow.com/questions/355167/how-are-anonymous-inner-classes-usused-in-java – Unknown
Wie verwendet und Vorteil beide unterschiedliche Sache sind, und ich als auch gefragt, wie es die Leistung verbessert. –
@Faizan http://stackoverflow.com/questions/3028341/java-anonymous-class-efficiency-implications –