2010-11-10 20 views
4

Je suis nouveau à Java mais si je comprends bien, un char est une primitive. Faire char temp et temp.hashCode() ne compilera pas mais fera un char [] temp2 = new char [2] et temp2.hashCode() compilera et exécutera.En Java, est un char [] un objet?

Est-ce que cela signifie en quelque sorte un char [] est un objet ???

Répondre

16

un char est une primitive, mais un tableau de type char est un objet

une façon de savoir est de façon dynamique instanciant:

final Object charArray = Array.newInstance(Character.TYPE, 5); 
System.out.println(charArray.getClass().getComponentType()); 

sortie:

carbonisation

(Character.TYPE est une référence à la classe primitive char. Une autre façon d'accéder à cette classe est par char.class)

+1

* C'est la seule façon d'accéder à cette classe. * Incorrect, vous pouvez utiliser 'char.class'. – whiskeysierra

+0

@Willi vrai, oublié à ce sujet. Édité ma réponse –

+0

Un autre point intéressant, 'char.class' est juste une référence à' Character.class' (selon http://www.docjar.com/html/api/java/lang/Character.java.html) . Donc je suppose que nous avions tous les deux raison;) – whiskeysierra

0

Oui, tous les tableaux sont des objets en Java.

0

Oui, chaque tableau de chaque type est un objet.

0

Oui les tableaux sont des objets en java.

7

Oui. Tous les tableaux sont des objets, même des tableaux de types primitifs.

0

Un tableau n'est pas seulement plusieurs types primitifs, il a aussi un champ "longueur". Les types primitifs n'ont pas de champs. Une autre chose qui place les tableaux à l'écart des types primitifs est qu'ils sont des références et doivent donc être récupérés.