我可以用Java做到这一点吗?

adr*_*on3 1 java class dynamic

有没有办法在Java中这样做?

class A { ... }
class B { ... }

void method()
{
 Class[] array = {A,B,A,A};
 int i = 2;
 Object object = new array[i]();
}
Run Code Online (Sandbox Code Playgroud)

不,我不想使用下面的任何ifs或开关

if(i==0) object = new A();
else if(i==1) object = new B();
...
Run Code Online (Sandbox Code Playgroud)

Leo*_*zen 7

你必须做这样的事情:

class A { ... }
class B { ... }
void method(){
    Class[] array = {A.class, B.class, A.class, A.class};
    int i = 2;
    Object object = array[i].newInstance();
}
Run Code Online (Sandbox Code Playgroud)

该类必须具有默认构造函数(一个没有参数)才能newInstance()工作.