A constructor can be declared as generic, independently of whether the class that the constructor is declared in is itself generic. A constructor is generic if it declares one or more type variables. These type variables are known as the formal type parameters of the constructor. The form of the formal type parameter list is identical to a type parameter list of a generic class or interface. The interface constructor is generic.
Example:
GenericsTest.java
/**
* This class is used to show the use of generics constructor.
* @author w3spoint
*/
class Test {
//Generics constructor
public <T> Test(T item){
System.out.println("Value of the item: " + item);
System.out.println("Type of the item: "
+ item.getClass().getName());
}
}
public class GenericsTest {
public static void main(String args[]){
//String type test
Test test1 = new Test("Test String.");
Test test2 = new Test(100);
}
} |
/**
* This class is used to show the use of generics constructor.
* @author w3spoint
*/
class Test {
//Generics constructor
public <T> Test(T item){
System.out.println("Value of the item: " + item);
System.out.println("Type of the item: "
+ item.getClass().getName());
}
} public class GenericsTest {
public static void main(String args[]){
//String type test
Test test1 = new Test("Test String.");
Test test2 = new Test(100);
}
}
Output:
Value of the item: Test String.
Type of the item: java.lang.String
Value of the item: 100
Type of the item: java.lang.Integer |
Value of the item: Test String.
Type of the item: java.lang.String
Value of the item: 100
Type of the item: java.lang.Integer
Download this example.
Generics constructor example with two parameters:
GenericsTest.java
/**
* This class is used to show the use of
* generics constructor with two parameters.
* @author w3spoint
*/
class Test {
//Generics constructor with two parameters.
public <T, U> Test(T itemT, U itemU){
System.out.println("Value of the itemT: " + itemT);
System.out.println("Type of the itemT: "
+ itemT.getClass().getName());
System.out.println("Value of the itemU: " + itemU);
System.out.println("Type of the itemU: "
+ itemU.getClass().getName());
}
}
public class GenericsTest {
public static void main(String args[]){
//String type test
Test test = new Test("Test String.", 100);
}
} |
/**
* This class is used to show the use of
* generics constructor with two parameters.
* @author w3spoint
*/
class Test {
//Generics constructor with two parameters.
public <T, U> Test(T itemT, U itemU){
System.out.println("Value of the itemT: " + itemT);
System.out.println("Type of the itemT: "
+ itemT.getClass().getName());
System.out.println("Value of the itemU: " + itemU);
System.out.println("Type of the itemU: "
+ itemU.getClass().getName());
}
} public class GenericsTest {
public static void main(String args[]){
//String type test
Test test = new Test("Test String.", 100);
}
}
Output:
Value of the itemT: Test String.
Type of the itemT: java.lang.String
Value of the itemU: 100
Type of the itemU: java.lang.Integer |
Value of the itemT: Test String.
Type of the itemT: java.lang.String
Value of the itemU: 100
Type of the itemU: java.lang.Integer
Download this example.