在 Java 中有没有办法做到这一点?
class A { ... }
class B { ... }
void method()
{
Class[] array = {A,B,A,A};
int i = 2;
Object object = new array[i]();
}
不,我不想使用任何 ifs 或如下所示的开关
if(i==0) object = new A();
else if(i==1) object = new B();
...
最佳答案
你必须做这样的事情:
class A { ... }
class B { ... }
void method(){
Class[] array = {A.class, B.class, A.class, A.class};
int i = 2;
Object object = array[i].newInstance();
}
该类必须有一个默认构造函数(一个没有参数的构造函数),以便 newInstance()
工作。
关于java - 我可以在 Java 中执行此操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8703142/