Wrapper Classes · Classes Wrapper
| English | Français |
|---|---|
| wrapper class/ˈræpə klæs/ | classe enveloppe |
| autoboxing/ˌɔːtəʊˈbɒksɪŋ/ | l'autoboxing |
| unboxing/ʌnˈbɒksɪŋ/ | l'unboxing |
Boxing a primitive
- Some Java structures (like
ArrayList) hold objects, not primitives. - A wrapper class 包装类 wraps a primitive in an object:
Integerwrapsint,Doublewrapsdouble. Integer boxed = Integer.valueOf(5);puts theint5inside an object.- Wrappers let primitives live where only objects are allowed.
Encapsuler une primitive
- Certaines structures Java (comme
ArrayList) contiennent des objets, pas des primitives. - Une classe enveloppeuse 包装类 enveloppe une primitive dans un objet :
Integerenveloppeint,Doubleenveloppedouble. Integer boxed = Integer.valueOf(5);place la valeurint5à l'intérieur d'un objet.- Les classes enveloppeuses permettent aux primitives de vivre là où seuls les objets sont autorisés.
Autoboxing and unboxing
- Java converts automatically — autoboxing 自动装箱 and unboxing 自动拆箱.
Integer x = 5;autoboxes5;int y = x;unboxes it back.- So
list.add(5)works even though the list holdsIntegerobjects. - You rarely write
Integer.valueOfby hand — autoboxing does it.
Autoboxing et unboxing
- Java convertit automatiquement — autoboxing 自动装箱 et unboxing 自动拆箱.
Integer x = 5;effectue l'autoboxing de5;int y = x;l'en extrait (unboxing).- Donc
list.add(5)fonctionne même si la liste contient des objetsInteger. - Vous écrivez rarement
Integer.valueOfmanuellement — l'autoboxing le fait.
Why ArrayList needs them
ArrayList<Integer>holdsIntegerobjects, because generics require a reference type.- You can't write
ArrayList<int>— primitives aren't objects. - Autoboxing lets you add and read plain
ints conveniently. Double,Boolean, etc. play the same role for their primitives.
Pourquoi ArrayList en a besoin
ArrayList<Integer>contient des objetsInteger, car les génériques exigent un type référence.- Vous ne pouvez pas écrire
ArrayList<int>— les primitives ne sont pas des objets. - L'autoboxing permet d'ajouter et de lire des
intbruts commodément. Double,Boolean, etc. jouent le même rôle pour leurs primitives.
Compare wrappers with equals
- Two
Integerobjects should be compared with.equals(), not==. ==compares references;.equals()compares the wrapped values.- (Java caches small Integers, so
==sometimes seems to work — don't rely on it.) - The same "use
.equals()for objects" rule fromStringapplies here.
Comparer des enveloppeuses avec equals
- Deux objets
Integerdoivent être comparés avec.equals(), pas==. ==compare les références ;.equals()compare les valeurs enveloppées.- (Java met en cache les Integers petits, donc
==semble parfois fonctionner — ne comptez pas dessus.) - La même règle « utilisez
.equals()pour les objets » deStrings'applique ici.
Wrappers are objects, so compare their values with .equals(), not ==. == tests reference identity; for two Integer objects with the same value it can be false. And you can't parameterize a collection with a primitive — it's ArrayList<Integer>, never ArrayList<int>. Autoboxing bridges the gap so you can still add plain ints.
Les wrappers sont des objets, donc comparez leurs valeurs avec .equals(), pas ==. == teste l'identité de référence ; pour deux objets Integer ayant la même valeur, cela peut être false. Et vous ne pouvez pas paramétrer une collection avec un primitif — c'est ArrayList<Integer>, jamais ArrayList<int>. L'autoboxing comble cet écart afin que vous puissiez toujours ajouter des int bruts.
Wrappers with an ArrayList:
ArrayList<Integer> nums = new ArrayList<Integer>();nums.add(5);— theint5is autoboxed into anInteger.int first = nums.get(0);— theIntegeris unboxed back toint.
Enveloppeuses avec une ArrayList :
ArrayList<Integer> nums = new ArrayList<Integer>();nums.add(5);— la valeurint5est autoboxée dans un objetInteger.int first = nums.get(0);— la valeurIntegerest déboîtée (unboxed) pour revenir àint.
A wrapper class (Integer, Double, Boolean) wraps a primitive in an object so it can go where objects are required — like an ArrayList<Integer> (you can't write ArrayList<int>). Autoboxing and unboxing convert automatically. Compare wrapper objects with .equals(), not ==.
Une classe enveloppe (Integer, Double, Boolean) encapsule un type primitif dans un objet pour qu'il puisse être utilisé là où des objets sont requis — comme dans une ArrayList<Integer> (on ne peut pas écrire ArrayList<int>). La boîtage automatique et le déboîtage automatique effectuent cette conversion automatiquement. Comparez les objets enveloppes avec les .equals(), pas les ==.
Autoboxing and unboxing · Autoboxing et unboxing
int ↔ Integer conversions happen automatically. · Les conversions int ↔ Integer se font automatiquement.
Which wrapper class wraps an int? · Quelle classe wrapper enveloppe un int ?
Integer wraps int; Double wraps double. · Integer enveloppe int ; Double enveloppe double.
Why must an ArrayList of ints be declared ArrayList
You can't write ArrayList
Two Integer objects should be compared with... · Deux objets Integer doivent être comparés avec...
Wrappers are objects — use .equals() for their values. · Les wrappers sont des objets — utiliser .equals() pour leurs valeurs.
In nums.add(5), the int 5 is automatically boxed into an Integer (autoboxing). · Dans nums.add(5), l'int 5 est automatiquement boxed en un Integer (autoboxing).
Autoboxing converts the primitive to a wrapper object. · L'autoboxing convertit le primitif en objet wrapper.
A class that wraps a primitive in an object is a ___ class (one word). · Une classe qui enveloppe un primitif dans un objet est une classe ___ (un mot).
Integer, Double, Boolean are wrapper classes. · Integer, Double, Boolean sont des classes wrappers.