Code snippet :
private List<Animals> createAnimanlsIstance(Class cls) {
Class typeCastedObject = (cls)getObjectBySomeCalculation();
}
Lets Say, I pass the Class as Dog.class at run Time and I want to type cast to Dog class Object. How can I achieve this, My above code is just a sample, Of what I want.
It's not like :
if( obj instanceOf ClassA)
{
Object = (ClassA) obj;
}
I will be passing an instance of Class as parameter, ex : Dog.class,Cat.class etc.
You might try generics:
private <T> List<Animals> createAnimalsInstance(Class<T> cls)
{
T typeCastedObject = (T) getObjectBySomeCalculation();
}
Then you can simply use this method as usual:
List<Animals> animals = createAnimalsInstance(Dog.class);
FYI: If you want to do instanceof you can use Class.isAssignableFrom:
if (obj instanceOf AClass)
is equivalent with
if (AClass.isAssignableFrom(obj.getClass()))
You could probably use generics:
private <T> List<Animal> createAnimalsInstances(Class<T> clazz) {
T castedObject = (T) getObjectBySomeCalculation();
}
If the casted objects are intended to be added into a List<Animal> (i.e. are extending Animal), then you'll need:
private <T extends Animal> List<Animal> createAnimalsInstances(Class<T> clazz) {
T castedObject = (T) getObjectBySomeCalculation();
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With