我有这样的场景,
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
中的两个不同的表答案 0 :(得分:2)
来自create-new-class-from-a-variable-in-java
这是你想要做的:
String className = "A"; //or "B"
Object xyz = Class.forName(className).newInstance();
答案 1 :(得分:0)
您应该稍微修改一下您的设计。
类A
和B
都应该实现相同的接口。
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;