java - 我可以在 Java 中执行此操作吗?

标签 java class dynamic

在 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/

相关文章:

c++ - 将变量声明为 "Class"数据类型,而不调用 "Class"构造函数?

javascript - 为什么对私有(private)变量的引用没有被更新?

java - 插入 } 来完成 ClassBody

mysql - 基于 UnixTime 的动态 MySQL 分区

java - 如何修复Java中的 'The following classes could not be found: - android.support.v7.widget.Toolbar'错误

java - 替换项目中所有 java 文件中的文本

jquery - 动态部分 View + jquery 表单劫持 + 客户端验证 = 不起作用

PHP 多页面点击计数器自动生成

java - 性能提升 : toString()

Java File Appender 写入 Windows 网络共享