Maison >Java >javaDidacticiel >Pourquoi la méthode `toString()` de Java produit-elle une sortie cryptique pour les tableaux ?

Pourquoi la méthode `toString()` de Java produit-elle une sortie cryptique pour les tableaux ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-16 11:01:03427parcourir

Why Does Java's `toString()` Method Produce Cryptic Output for Arrays?

ToString() peu commun de Java pour les tableaux

En Java, la méthode toString() est censée fournir un outil utile et lisible par l'homme. représentation sous forme de chaîne d’un objet. Cependant, lorsqu'il s'agit de tableaux, cette attente ne se vérifie pas.

La particularité de ToString() d'un tableau

Considérez le code suivant :

char[] Array = {'a', 'b', 'c', 'd', 'e', 'f'};
System.out.println(Array.toString());

Au lieu de renvoyer la chaîne attendue "abcdef", ce code affiche du charabia comme "[C@6e1408" ou "[C@e53108."

Ce comportement est dû au fait que l'implémentation toString() par défaut de Java pour les tableaux produit une chaîne cryptique contenant :

  • [ (crochet gauche)
  • C (type d'élément, 'C' pour char)
  • @ (séparateur)
  • code de hachage d'identité (un identifiant unique pour le tableau)

La solution

Pour obtenir une représentation sous forme de chaîne lisible par l'homme d'un tableau, utilisez le Méthode statique Arrays.toString() à la place :

System.out.println(Arrays.toString(Array));

Cette méthode renvoie explicitement la chaîne "abcdef" souhaitée.

La justification

Java Le choix d'utiliser une implémentation cryptique de toString() pour les tableaux est souvent considéré comme une erreur. L'intention derrière cette conception était probablement de donner la priorité aux adresses mémoire lors du débogage, mais cela s'est avéré plus déroutant qu'utile dans l'utilisation quotidienne.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn