Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

 

Code Block
languagejava
titleCharacter
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
languagejava
titleInteger
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 generictar 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
languagejava
titleWithout generics
List list = new ArrayList();
list.add(1337);
int i = (Integer) list.get(0);

 

 

Code Block
languagejava
titleWith 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
languagejava
titleWith generics
List<Person> list = new ArrayList<Person>();
list.add(new Person("Per"));  // Assumes Person-class exists
Person p = list.get(0); // no cast