How generics can be used in Class Factories

Lets see how generics can be used to create generic interface for class factories.


public class GenericFactory <E>
{
Class<E> thisClass=null;

public GenericFactory (Class iclass)
{
this.thisClass = iclass;
}

public E createInstance() throws IllegalAccessException,InstantiationException{
return(E)this.thisClass.newInstance();
}
}

The <E> is a type token that signals that this class has a type set when instantiated.


public class Myclass {

void print()
{
System.out.println("Hellooo");
}
}


public class Main {

public static void main(String[] args) throws IllegalAccessException, InstantiationException {

GenericFactory<Myclass> factory = new GenericFactory<Myclass>(Myclass.class);
Myclass myclass= factory.createInstance();
myclass.print();
}
}

Output:-  Hellooo

We can see that, it is not necessary to cast the object returned from the factory.createInstance().


Comments