...
Code Block |
---|
language | java |
---|
title | Character |
---|
| char c_prim = 'c';
Character c_class = new Character('c');
System.out.println(c_prim == c_class); // true |
Her kan man se at java ikke skiller mellom variabler som er instansiertinitialisert gjennom den primitive datatypen, eller dens tilhørende klasse. | Code Block |
---|
| Integer first = new Integer(5);
Integer second = new Integer(5);
System.out.println(first.equals(second)); // true |
I tillegg ser man her at der java vanligvis skiller mellom objekter som inneholder samme informasjon, er ikke dette tilfellet for klassene som pakker inn en primitiv datatype. |
---|
...
Verdiklasser knyttet til generics
I tilknytning til Collection-rammeverket, og generics tar vi også i bruk verdiklassene. Når vi deklarerer en ny collection er det ofte ønskelig å definere hva slags informasjon som skal legges i denne, og vi vil da måtte oppgi hvilken verdiklasse informasjonen tilhører.
Code Block |
---|
language | java |
---|
title | Without generics |
---|
| List list = new ArrayList();
list.add(1337);
int i = (Integer) list.get(0); |
| Code Block |
---|
language | java |
---|
title | With generics |
---|
| List<Integer> list = new ArrayList<Integer>();
list.add(1337);
int i = list.get(0); // no cast |
Vi bruker her Integer siden denne klassen "representerer" et int | Code Block |
---|
language | java |
---|
title | With generics |
---|
| List<Person> list = new ArrayList<Person>();
list.add(new Person("Per")); // Assumes Person-class exists
Person p = list.get(0); // no cast |
|
---|