Generics in Java
The Java Generics programming is introduced in J2SE 5 to deal with type-safe objects.
Before generics, we can store any type of objects in collection i.e. non-generic. Now generics, forces the java programmer to store 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.
2) Type casting is not required: There is no need to typecast the object.
Before Generics, we need to type cast.
After Generics, we don't need to typecast the object.
3) Compile-Time Checking: It is checked at compile time so problem will not occur at runtime. The good programming strategy says it is far better to handle the problem at compile time than runtime.
Syntax to use generic collection
Example to use Generics in java
Full Example of Generics in Java
Here, we are using the ArrayList class, but you can use any collection class such as ArrayList, LinkedList, HashSet, TreeSet, HashMap, Comparator etc.Test it Now
Output:element is: jai rahul jai
Example of Java Generics using Map
Now we are going to use map elements using generics. Here, we need to pass key and value. Let us understand it by a simple example:Test it Now
Output:1 vijay 2 ankit 4 umesh
A class that can refer to any type is known as generic class. Here, we are using T type parameter to create the generic class of specific type.
Let’s see the simple example to create and use the generic class.Creating generic class:
The T type indicates that it can refer to any type (like String, Integer, Employee etc.). The type you specify for the class, will be used to store and retrieve the data.Using generic class:
Let’s see the code to use the generic class.
The type parameters naming conventions are important to learn generics thoroughly. The commonly type parameters are as follows:
Like generic class, we can create generic method that can accept any type of argument.
Let’s see a simple example of java generic method to print array elements. We are using here E to denote the element.Test it Now
Output:Printing Integer Array 10 20 30 40 50 Printing Character Array J A V A T P O I N T
Wildcard in Java Generics
The ? (question mark) symbol represents wildcard element. It means any type. If we write <? extends Number>, it means any child class of Number e.g. Integer, Float, double etc. Now we can call the method of Number class through any child class object.
Let's understand it by the example given below:
drawing rectangle drawing circle drawing circle