Generics In Java:
Generics In Java:
Java Generics programming is introduced in J2SE 5 to deal with type-safe objects. It makes the code stable by detecting the bugs at compile time.
Before generics, we can store any type of objects in the collection, i.e., non-generic. Now generics force the java programmer to store a specific type of objects.
Advantage of Java Generics:
There are mainly 3 advantages of generics. They are as follows:
1) Type-safety: We can hold only a single type of objects in generics. It doesn?t allow to store other objects.
Without Generics, we can store any type of objects.
List list = new ArrayList();
list.add(10);
list.add("10");
With Generics, it is required to specify the type of object we need to store.
List<Integer> list = new ArrayList<Integer>();
list.add(10);
list.add("10");// compile-time error
2) Type casting is not required: There is no need to typecast the object.
Before Generics, we need to type cast.
List list = new ArrayList();
list.add("hello");
String s = (String) list.get(0);//typecasting
After Generics, we don't need to typecast the object.
List<String> list = new ArrayList<String>();
list.add("hello");
String s = list.get(0);
------------
Example of Java Generics using Map
import java.util.*;
class TestGenerics2{
public static void main(String args[]){
Map<Integer,String> map=new HashMap<Integer,String>();
map.put(1,"vijay");
map.put(4,"umesh");
map.put(2,"ankit");
//Now use Map.Entry for Set and Iterator
Set<Map.Entry<Integer,String>> set=map.entrySet();
Iterator<Map.Entry<Integer,String>> itr=set.iterator();
while(itr.hasNext()){
Map.Entry e=itr.next();//no need to typecast
System.out.println(e.getKey()+" "+e.getValue());
}
}}
-----------------------------
Custome Generic Clases
-- Create custom generic calss
package Java5;
public class CustomGenericClass<T> {
T obj;
void add(T obj){
this.obj=obj;
}
T get(){
return obj;
}
}
------
package Java5;
public class TestCustomGenericClass {
public static void main(String args[]){
CustomGenericClass<String> m=new CustomGenericClass<String>();
m.add("Srini");
//m.add("vivek");//Compile time error
System.out.println(m.get());
}
}
----------------
The common type parameters are as follows:
T - Type
E - Element
K - Key
N - Number
V - Value
Comments
Post a Comment