Java:如何将cast输入到一个";“运行时”;上课?

Java:如何将cast输入到一个";“运行时”;上课?,java,class,reflection,casting,Java,Class,Reflection,Casting,代码段: private List<Animals> createAnimanlsIstance(Class cls) { Class typeCastedObject = (cls)getObjectBySomeCalculation(); } 我将传递一个类实例作为参数,例如:Dog.Class、Cat.Class等。您可以尝试泛型: private <T> List<Animals> createAnimalsInstance(Class

代码段:

private List<Animals> createAnimanlsIstance(Class cls) {
   Class typeCastedObject  =   (cls)getObjectBySomeCalculation();

}

我将传递一个类实例作为参数,例如:Dog.Class、Cat.Class等。

您可以尝试泛型:

private <T> List<Animals> createAnimalsInstance(Class<T> cls)
{
    T typeCastedObject = (T) getObjectBySomeCalculation();

}
private <T> List<Animal> createAnimalsInstances(Class<T> clazz) {
    T castedObject = (T) getObjectBySomeCalculation();    
}
相当于

if (AClass.isAssignableFrom(obj.getClass()))

您可能会使用泛型:

private <T> List<Animals> createAnimalsInstance(Class<T> cls)
{
    T typeCastedObject = (T) getObjectBySomeCalculation();

}
private <T> List<Animal> createAnimalsInstances(Class<T> clazz) {
    T castedObject = (T) getObjectBySomeCalculation();    
}
试试这个

Class typeCastedObject = cls.cast(getObjectBySomeCalculation());

Thanks,但所有传递的类都不相关,而且在类型转换之后,我必须调用一个api(所有类都通用)。让我试试所有这些,谢谢大家的建议,还有一个简单的例子:)
private <T extends Animal> List<Animal> createAnimalsInstances(Class<T> clazz) {
    T castedObject = (T) getObjectBySomeCalculation();    
}
Class typeCastedObject = cls.cast(getObjectBySomeCalculation());