První příklad použití

Nyní tedy máme seznam, který při použití bude obsahovat nějaké prvky typu E. Nyní chceme takový seznam použít někde v našem kódu a užívat si výhod generics. Vytvoříme jej následovně:


      
      List<String> = new ArrayList<String>();
      
    

Použití je opět jednoduché a velmi intuitivní. Nyní následují dva příklady demonstrující výhody generics (první je napsán „postaru“).


      
      Object number = new Integer(2);
      List numbers = new ArrayList();     
      numbers.add(new Integer(1));        
      numbers.add(number);
      Number n = (Number)numbers.get(0); 
      Number o = (Number)numbers.get(1);
      
    

      
      Object number = 2;          
      List<Number> numbers = new ArrayList<Number>();
      numbers.add(1);              
      numbers.add((Number)number); 
      Number n = numbers.get(0);
      Number o = numbers.get(1);
      
    

Jak vidíme v horním příkladu, do seznamu lze vložit libovolný objekt (byť zde jsme měli „štěstí“ a bylo to číslo) a při získávání objektů se spoléháme na to, že se jedná o číslo. Níže naopak nelze obecný objekt vložit, je nutné jej explicitně přetypovat na číslo, teprve poté překladač kód zkompiluje. Podotkněme, že pokud bychom na Number přetypovali například String, program se také přeloží, ale v okamžiku zavolání takového příkazu se logicky vyvolá výjimka ClassCastException. Získání čísel ze seznamu je ovšem přímočaré -- stačí pouze zavolat metodu get, která má správný návratový typ.

Povšimněte si rovněž použití další vlastnosti nové Javy, tzv. autoboxingu, kdy primitivní typ je automaticky převeden na odpovídající objekt (a vice versa).