2010-10-13 7 views
-1

Possible en double:
Wrapper class in javaclasse wrapper

je l'ai appris classe wrapper qu'il est utilisé pour envelopper les valeurs primitives. Quelqu'un d'entre vous peut-il m'expliquer sur la classe Wrapper en détail? Pourquoi devrions-nous aller pour le cours d'emballage et quand?

Répondre

1

Vous avez besoin d'une classe wrapper (comme Integer ou Byte) lorsque vous souhaitez utiliser un type de données primitif dans un endroit où seuls les objets sont acceptés (par exemple pour les ajouter à une collection).

Il n'y a pas de classe Wrapper, mais vous avez une classe distincte pour chaque type primitif (Integer pour int, Boolean pour bool, Byte pour byte, etc.).

Le fonctionnement de ces classes wrapper est qu'elles sont des objets qui ont un champ d'instance avec la primitive qu'ils enveloppent. De plus, dans Java5, le compilateur sait comment convertir automatiquement entre eux et les primitives (ce qu'on appelle boxing/unboxing). Lors de la conception d'une API, vous devez prendre une primitive comme argument de méthode lorsqu'il ne s'agit pas d'un paramètre facultatif. Quand c'est facultatif, vous devriez utiliser un wrapper afin que null puisse être utilisé.

Par exemple

List<String> result = search("keyword", limit); 
// you can set a limit (Integer) or leave it null (no limit). 
// easier to understand (I think) than using -1 or 0 or Integer.MAX_VALUE