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)
你必须做这样的事情:
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()工作.