Versions Compared

Key

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

...

 

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 

 

Hovedargumentet for å bruke generics er at vi får kode som er mer typesikkert ved kompilering (mye lettere å finne bugs ved kompilering enn runtime). I tillegg unngår vi casting og det muliggjør implementering av algoritmer som fungerer på ulike datatyper. Mer om generics her.