Java,从string获取类的包名

时间:2014-08-18 10:00:49

标签: java

我拥有的一切:

String desiredClass = "MyClass";

我想实例化这个类,但这个名字来自这个字符串。我知道可以通过以下方式完成:

Class.forName(desiredClass);

公式,但是这也需要来自此字符串的包路径(name.space.path.MyClass)。我知道它可以被.getPackage()查询 - 但同样,它需要一个直接的类引用,而不是字符串。看起来蛇已经咬了它的结尾:)

1 个答案:

答案 0 :(得分:1)

在初始化对象之前,您需要知道包名称。 如果没有它,你将无法从两个独立的包中区分出两个具有相同名称的类。

如果您有两个类test1.MyClasstest2.MyClass,则应在您的代码中选择一个:

String desiredClass = "MyClass";
Class.forName(desiredClass);

因此,您需要提前知道包名称并执行以下操作:

String desiredClass = "test1.myClass";