如何在java中动态创建类的对象

时间:2013-01-22 06:34:01

标签: java

  

可能重复:
  Create new class from a Variable in Java

我有这样的场景,

 String className;

 if(someCondition){

 className="A";

   }
 else{
   className='B'
  }

现在我想动态地这样做

 className obj=(className) dbObj;//i am typcasting the db casting to particular class

注意:这里A和B类具有相同的setter和getter但属于db

中的两个不同的表

2 个答案:

答案 0 :(得分:2)

来自create-new-class-from-a-variable-in-java

这是你想要做的:

String className = "A"; //or "B"
Object xyz = Class.forName(className).newInstance();

查看Class.forName()

答案 1 :(得分:0)

您应该稍微修改一下您的设计。

AB都应该实现相同的接口。

interface IAB {
}

class A implements IAB {
}

class B implements IAB {
}

现在,按以下方式更改您的代码:

IAB className;

if(someCondition) {
    className = (A) dbObj;
}
else {
    className = (B) dbObj;
}

OR

classname = (someCondition ? A : B) dbObj;