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

Popular posts from this blog

Codity Test and results

TTD - Test Driven Development for Java Programmers