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());