Frage:
In exportierten JAR-Dateien, die mit Eclipse erstellt wurden, bestimmte Klassendateien zeigen den Klassennamen gefolgt von einem Dollarzeichen und einer Zahl an. Zum Beispiel:
<code class="java">Find.class Find.class Find.class Find.class</code>
Ist dies eine Folge von Codegrößenbeschränkungen, bei denen größere Klassen in mehrere kleinere aufgeteilt werden? Umfangreiche Online-Recherchen haben keine relevanten Informationen ergeben. Kann jemand eine Erklärung geben?
Antwort:
Diese zusätzlichen Klassendateien sind ein Ergebnis von inneren Klassen innerhalb der ursprünglichen Klasse. Innere Klassen sind in äußeren Klassen verschachtelt und werden mit dem Schlüsselwort „class“ deklariert:
<code class="java">public class OuterClass { public class InnerClass { // Nested code } }</code>
Wenn eine Klasse mit inneren Klassen kompiliert wird, werden für jede innere Klasse separate Klassendateien gemäß der Namenskonvention OuterClass$InnerClass generiert .Klasse. Anonymen inneren Klassen (solchen ohne Namen) werden numerische Bezeichner zugewiesen, was zu Dateinamen wie OuterClass$1.class führt.
Entgegen der landläufigen Meinung hat die Größe der ursprünglichen Klasse keinen Einfluss auf die Erstellung mehrerer Klassendateien . Das Vorhandensein innerer Klassen ist der einzige Grund für dieses Verhalten.
Das obige ist der detaillierte Inhalt vonWarum haben kompilierte Java-Klassen in JAR-Dateien Dollarzeichen und Zahlen in ihren Dateinamen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!