Enveloppeurs en Java

Du type primitif en Objet et inversement

Ce site ne sera plus alimenté de contenu après août 2014. Tous les nouveaux articles seront redigés pour www.waitingforcode.com

Java distingue deux types des données : des instances des classes et des types primitifs. Ils sont interchangeables grâce à des enveloppeurs.

Les types primitifs ne sont pas des instances. Pour pouvoir les traiter en tant que telles, on peut les "envelopper" avec les wrappers. Ces enveloppeurs héritent tous de la classe Object et bénéficient de plusieurs méthodes utilitaires (comparaison, valeur maximale et minimale etc.). Voici comment se présente la transition entre les types primitifs et leurs enveloppeurs :

afficher le code

Sur l'écran on verra le résultat de conversion :

Int = 43 Short = 120 Long = 43 Float = 43.04 Double = 55.03 Byte = 73 Boolean = true String = String test Retreiving primitive types values from wrappers Int = 43 Short = 120 Long = 43 Float = 43.04 Double = 55.03 Byte = 73 Boolean = true String = String test

Les enveloppeurs peuvent être également appelés dynamiquement par la machine virtuelle Java. Cela trouve son utilité surtout dans l'ajout des données dans les collections. Regardons cela sur un bref exemple :

afficher le code

Et voici le résultat :

Map's content : {j=2, k=3, i=1}

On remarque que les types primitifs ont été automatiquement traduit en instances de la classe Integer. Pour savoir plus à ce sujet, consultez l'article consacré à l'autoboxing et autounboxing en Java.

télécharger les fichiers d'exemple
Bartosz KONIECZNY Informations sur le langage

Une question ? Une remarque ?

*

*

Un conseil Symfony2

Un problème filemtime()

Si pendant le développement de votre projet Symfony2 vous rencontrez un problème avec fonction filemtime, il peut s'agir d'un dysfonctionnement temporaire. Warning: filemtime() [function.filemtime]: stat failed for C:\Program Files (x86)\EasyPHP-5.3.5.0\www\gagu\src\Bun\DleBundle/Resources/views/Bundle/show.html.php in C:\Program Files (x86)\EasyPHP-5.3.5.0\www\appli\app\cache\dev\classes.php line 2064 Pour résoudre ce problème, vous pouvez être amenés à supprimer le cache du répertoire dev (si vous êtes en mode développement).