我有一个数据库表,其中包含一个名为type的列。对于数据库列中的每一行,我必须根据类型创建一个对象。目前,我使用if else语句为:根据类型创建不同的对象
if (type.equals("object1")){
Object1 object1 = new Object1();
}
else if (type.equals("object2")){
Object2 object2 = new Object2();
}
有些更好的办法是使用一个枚举,作为类型的数量是有限的,但有没有可能让一个对象的创建依赖于价值的字符串?
我愿意以另一种方式解决我的问题,而不是我试图解决的问题。
我正在为Android开发,因此switch语句不起作用 – 2012-02-07 10:22:23
好点,关闭也一样。第一个例子会工作。您可能需要在名称的开头添加一个包,并更改第一个字母的大小写。 ;) – 2012-02-07 10:27:17
我想对象o = Class.forName(type).newInstance();我认为这将最适合我。然而,我坚持传递构造函数变量。我需要通过一个int和两个字符串,这个问题解决这个问题,但我似乎无法弄清楚(或只是了解会发生什么)http://stackoverflow.com/questions/234600/can-i-class-class -newinstance-with-constructor-arguments – 2012-02-07 10:48:13