String desiredClass = "MyClass";
我想实例化这个类,但这个名字来自这个字符串。我知道可以通过以下方式完成:
Class.forName(desiredClass);
公式,但是这也需要来自此字符串的包路径(name.space.path.MyClass)。我知道它可以被.getPackage()
查询 - 但同样,它需要一个直接的类引用,而不是字符串。看起来蛇已经咬了它的结尾:)
答案 0 :(得分:1)
在初始化对象之前,您需要知道包名称。 如果没有它,你将无法从两个独立的包中区分出两个具有相同名称的类。
如果您有两个类test1.MyClass
和test2.MyClass
,则应在您的代码中选择一个:
String desiredClass = "MyClass";
Class.forName(desiredClass);
因此,您需要提前知道包名称并执行以下操作:
String desiredClass = "test1.myClass";