Program to demonstrate how we can create Generic Type specific Collections in Java
package com.hubberspot.example;
import java.util.ArrayList;
public class GenericTypeSafeCollections {
public static void main(String[] args) {
// Raw type ArrayList compiler throws warning
// this collection is not type safe
ArrayList list = new ArrayList();
// Anything can go in the ArrayList declared
// as raw type
list.add(1); // Integer
list.add("Jonty"); // String
list.add(1.2f); // Float
list.add(new Object()); // Object
list.add(new String[]{ "Raw" , "Type"}); // String Array
// When we retrieve elements from raw type we can get wrong
// element that we did not expect so everytime we get is the
// raw Object that we have to typecast in order to get our
// required type ...
Integer i = (Integer)list.get(1); // casting required
String s = (String)list.get(2); // casting required
// To make Type Safe and specific collections we use generics
// Lets see demo below
ArrayList< String > genericList = new ArrayList< String >();
genericList.add("Jonty");
genericList.add("Magicman");
genericList.add(1); // Compiler error only Strings allowed
genericList.add(1.2f); // Compiler error only Strings allowed
// When we retrieve elements from generic type we will only get
// right element that we expect, so everytime we get is the
// generic String. We dont have to typecast because compiler knows
// that collection will have only String in it ...
String gs = genericList.get(0);
String gss = genericList.get(1);
}
}