【发布时间】:2015-08-03 18:37:21
【问题描述】:
我已经考虑过如何获取表示类名的 java.lang.String 并确定完全限定名,然后使用 Java.lang.Class.forName(FullyQualifiedName) 将字符串转换为类。
这让我感到困惑,因为我不能将 Java.lang.Class.forName() 与表示类名(例如“Address”)的 Java.lang.String 一起使用,因为我需要完全限定的名称,否则会出现异常.ClassNotFoundException 让我回到需要知道完全限定的名称,但是当我不能使用 Java.lang.Class.forName() 时如何。
我只是坚持我目前的知识。我已经使用 Google 进行了搜索,甚至创建了这个问题,但我敢打赌这已经被问到了。有人请指点我正确的方向吗?
注意:这个问题应该被删除,因为它似乎不可能在 Java 中执行 OP 请求的操作。
【问题讨论】:
-
你不能。简单的名称不是唯一的。只需使用完全限定名称而不是简单名称。
-
但我需要从表示为 Java.lang.String 的简单 Java.lang.Class 名称中动态确定完全限定名称
-
类加载器中的两个类同名但包不同的情况下怎么办?
-
我的意思是,你将如何决定哪个是正确的传递给 Class.forName()?它们都是类,并且都具有名称
foo。你想要的是com.poo.foo,还是org.poo.foo?没有程序可以为您回答这个问题;你是在让它猜测。 -
不,Class.forName() 只接受完全限定的类名,因为这个问题。
标签: java fully-qualified-naming