我有一个项目 A,其中包含如下包: A/src/mypackage/class/Class1.java
然后我有另一个项目 B,包如下:
B/src/mypackage/class/Class2.java
我需要在项目 A 的类中使用 Class.forName() 并获取 Class2 。但是 Class.forName(mypackage.class.Class2) 抛出类未找到异常。
有人知道解决这个问题的方法吗?
最佳答案
如果您的 B/src/mypackage/class/Class2.java
在“项目 A”的类路径中,您可能为类名传递了一个错误的参数。
你应该使用:
full.package.FileName[$NestedClassName]
...哪里...
完整包是一个点分隔的包描述符(即
我的包.类
)。类名是该文件的类名(即
Class2
).可选的嵌套类名将应用于
内的类Class2
,例如Class2$MyNestedClass
。
最终,您的调用应如下所示:
try {
Class.forName("mypackage.class.Class2");
}
// TODO handle
catch (ClassNotFoundException cnfe) {
cnfe.printStackTrace();
}
关于java - Class.forName() 在另一个项目中搜索类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24614457/