Kann jemand die Bedeutung synthetischer Felder in Java leicht verständlich erklären? Ich erinnere mich, es im Zusammenhang mit nicht statischen inneren Klassen gelesen zu haben, wo jede solche innere Klasseninstanz einen Verweis auf die einschließende Klasse enthält. Warum werden solche Referenzen/Felder synthetische Felder genannt?Was sind synthetische Felder in Java?
Antwort
Ein synthetisches Feld ist ein vom Compiler erstelltes Feld, das eine lokale innere Klasse mit den lokalen Variablen oder Referenztyp-Parametern eines Blocks verknüpft. Der Compiler synthetisiert bestimmte versteckte Felder und Methoden, um das Scoping von Namen zu implementieren. Diese Felder sind privat, sofern nicht anders angegeben, oder sie sind höchstens im Paketumfang. Sie können mehr Informationen here und in JLS
Eine Klasse Mitglied erhalten, die nicht im Quelltext angezeigt werden muss mit einem synthetischen Attribute gekennzeichnet sein, sonst muss sie ihre ACC_SYNTHETIC-Flag gesetzt haben. Die einzigen Ausnahmen von dieser Anforderung sind vom Compiler generierte Methoden, die nicht als Implementierungsartefakte betrachtet werden, nämlich die Instanzinitialisierungsmethode, die einen Standardkonstruktor der Programmiersprache Java (§2.9), die Klasseninitialisierungsmethode (§2.9) und die Enum darstellt. Werte() und Enum.valueOf() Methoden ..
"Ein synthetisches Feld ist ein vom Compiler erstelltes Feld, das eine lokale innere Klasse mit der lokalen Variablen oder dem Referenztyp eines Blocks verknüpft "... Ich verstehe die Bedeutung dieser Zeile nicht. Ein Codebeispiel würde helfen. – Geek
Sie können dies [Blog] (http://javapapers.com/core-java/java-synthetic-class-method-field/) für Codebeispiel ansehen. – NINCOMPOOP
also, wenn ich ein Klonen durch Reflexion über Felder erstellen, muss ich sie richtig überspringen? –
- 1. Was sind "synthetische Dimensionen" in Blaze?
- 2. synthetische Funktion "##" in scala
- 3. Finden synthetische Mitglieder in Klassenfelder in Scala
- 4. Synthetische Klassen in NHibernate
- 5. Was sind die erforderlichen HTTP-Header-Felder
- 6. Synthetische Klassen in Emma innerhalb STS
- 7. Was sind der Standard und zusätzliche Felder in MySQL verwendet?
- 8. JSON in Java analysieren, wenn zwei Felder gleich sind?
- 9. Was sind implizite Konstruktoren in Java?
- 10. Was bedeuten die statischen Felder in Java genau?
- 11. Sind statische Felder geerbt?
- 12. Felder sind leer mysqli
- 13. Warum statische Felder nicht serialisiert sind
- 14. Java: Statische transiente Felder
- 15. Initializing letzte Felder in Java
- 16. Kotlin synthetische und benutzerdefinierte Layout in DialogFragment
- 17. Dynamisch Eingabefelder mit Javascript, was sind die Paramnamen dieser Felder?
- 18. Was sind die Vorteile von Java?
- 19. Was sind Alternativen zur Java VM?
- 20. Was sind 'generierte Quelldateien' im Java-Compilerkontext?
- 21. AspectJ: Autowired Felder sind null in Initbinder
- 22. Was sind "Eigenschaften" in Groovy?
- 23. Was sind die Nachteile der Java Bean Klasse?
- 24. Was bedeuten Felder in/proc/net/dev?
- 25. Java generische Felder
- 26. Java abstrakte Klasse Felder überschreiben
- 27. Was sind "" in OCaml?
- 28. Überschreiben synthetische Ereignisse aus einer Komponente
- 29. Dynamische Felder zusätzlich in Java/Swing Form
- 30. Was sind die verschiedenen Techniken für Memoization in Java?
http://stackoverflow.com/questions/5223268/what-is-the-meaning-of-static-synthetic und http://stackoverflow.com/questions/7767804/what-is-a-synthetic-back-reference-to-a-inner-class – assylias