Comprendre l'encodage de "[Ljava.lang.Object;": un guide de la syntaxe des tableaux Java
Lors de la demande de représentation sous forme de chaîne de un objet reçu d'un appel de fonction, vous pouvez rencontrer un codage inconnu : "[Ljava.lang.Object;". Pour comprendre cela, il est essentiel de comprendre la syntaxe du tableau Java et le schéma d'encodage sous-jacent.
Encodage des types de tableau
L'encodage fourni est le nom complet de la classe, mais dans un format concis. Java nomme les classes de tableaux en utilisant un modèle spécifique, tel que défini dans la méthode Class.getName(). Dans ce cas, l'encodage indique un type de tableau, qui suit les règles suivantes :
Décodage de l'exemple
Dans notre exemple, "[Ljava.lang.Object;" suit la dernière règle. 'L' représente le type d'élément, qui est Objet, et [; indique qu'il s'agit d'un tableau de ce type. Par conséquent, cet encodage représente la classe d'un tableau d'objets.
toString() et Arrays
La classe Object de Java fournit une méthode toString() par défaut qui affiche la classe nom suivi du code de hachage. Puisque les tableaux héritent d’Object, leur implémentation toString() suit ce format. Cependant, leurs noms de classe codés empêchent une représentation lisible par l'homme.
Représentations de chaînes alternatives
java.util.Arrays fournit une alternative aux surcharges de chaînes pour l'impression de tableaux. Arrays.toString() fournit une représentation plus utile pour les tableaux primitifs, tandis qu'Arrays.deepToString() fait la même chose pour les tableaux imbriqués.
Conclusion
Comprendre le "[ Ljava.lang.Object;" l'encodage est crucial lors de l'inspection des tableaux en Java. En connaissant le schéma de codage, vous pouvez le décoder et mieux comprendre la structure du tableau. java.util.Arrays fournit également des méthodes alternatives toString() qui offrent des représentations plus lisibles.
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!