Heim >Java >javaLernprogramm >Warum enthalten kompilierte Java-Klassen Namen wie „Find$1.class'?

Warum enthalten kompilierte Java-Klassen Namen wie „Find$1.class'?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-26 00:45:27993Durchsuche

Why do Java compiled classes contain names like

Bezeichnung innerer Klassen in Java-kompilierten Klassen

In Java können beim Exportieren einer Anwendung in eine JAR-Datei bestimmte Klassen den Klassennamen enthalten gefolgt von einem Dollarzeichen und einer Zahl, z. B. Find$1.class. Dies liegt daran, dass Java innere Klassen, einschließlich anonymer innerer Klassen, getrennt von der Hauptklasse kompiliert.

Innere Klassen, die innerhalb einer anderen Klasse definiert sind, ermöglichen objektorientierte Programmierkonzepte wie Kapselung und Wiederverwendbarkeit von Code. Sie werden vom Compiler generiert und ihre Klassendateien haben die folgende Namenskonvention:

  • Benannte innere Klassen: OuterClass$InnerClass.class
  • Anonyme innere Klassen:OuterClass$1.class (wobei 1 die anonyme Klasse darstellt)

Zum Beispiel im folgenden Code:

<code class="java">public class OuterClass {
    public class InnerClass {
        // ...
    }

    public static void main(String[] args) {
        OuterClass.InnerClass inner = new InnerClass();
    }
}</code>

Die Kompilierung generiert die folgenden Klassendateien :

  • OuterClass.class
  • OuterClass$InnerClass.class

Das Dollarzeichen in Klassendateinamen dient als Trennzeichen zur Unterscheidung zwischen außen und innen Klassen. Es zeigt an, dass die innere Klasse zur angegebenen äußeren Klasse gehört.

Das obige ist der detaillierte Inhalt vonWarum enthalten kompilierte Java-Klassen Namen wie „Find$1.class'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn