2

我想使用一个由列表框中显示的字符串调用的类。

就像我会

“1 级” “2 级”

在列表框中,并像这样使用它:

新的“Class1”

这可能吗?

4

2 回答 2

6

可以使用反射。首先,找到班级。

Class<?> clazz = Class.forName("Class1");  // or a variable containing the class name

小心,forName需要一个完全限定的类名(例如java.lang.String)。

然后调用newInstance类对象。

Object instance = clazz.newInstance();

这些方法调用中的每一个都会引发您需要捕获的多个异常。

于 2013-06-11T22:07:27.080 回答
2

如果您事先知道所有可能的类,则可以使用工厂模式根据收到的字符串构建实例。

于 2013-06-11T22:09:39.260 回答