我想使用由列表框中显示的字符串调用的类。
就像我一样
"的Class1" "等级2"
列表框中的,并使用它:
new" Class1"
这可能吗?
答案 0 :(得分:6)
可以使用反射。首先,找到班级。
Class<?> clazz = Class.forName("Class1"); // or a variable containing the class name
请注意,forName
需要完全限定的类名(例如java.lang.String
)。
然后在类对象上调用newInstance
。
Object instance = clazz.newInstance();
每个方法调用都会抛出您需要捕获的多个异常。
答案 1 :(得分:2)
如果您事先知道所有可能的类,则可以使用Factory pattern根据收到的字符串构建实例。