Lors de l'inspection des fichiers JAR générés à partir d'Eclipse, les utilisateurs rencontrent parfois des classes avec des signes dollar ($), suivis de chiffres. Ce phénomène, particulièrement visible dans les classes plus nombreuses, a soulevé des questions quant à savoir s'il indique plusieurs versions compilées de la classe.
La présence de signes dollar dans les noms de classe signifie classes internes . Ce sont des classes supplémentaires définies au sein des classes externes. Le compilateur attribue un numéro unique à chaque classe interne pour les différencier.
Par exemple, le code suivant définit une classe externe avec deux classes imbriquées :
<code class="java">public class Find { private class InnerClass1 {} private class InnerClass2 {} }</code>
Lors de la compilation, la classe suivante les fichiers seront générés :
De plus, les classes internes anonymes, qui sont des classes déclarées et instanciées dans une seule instruction, sont également représentées par des signes dollar suivis de chiffres.
<code class="java">public class Main { public static void main(String[] args) { new Thread() { // Anonymous inner class // Override run() method }.start(); } }</code>
Dans cet exemple, la classe interne anonyme donnera lieu à un fichier de classe. nommé Main$1.class.
Contrairement à l'hypothèse initiale, la taille de la classe externe ne détermine pas si les classes internes seront générées. Les classes internes sont générées uniquement en fonction de la présence de classes imbriquées, quelle que soit la taille de la classe externe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!