java - Class.forName() 在另一个项目中搜索类

标签 java algorithm class reflection

我有一个项目 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/

相关文章:

java - 如何使用 Java 在 SQL 中获取列的中位数/众数/范围?

algorithm - 连接偶数个无交点的节点

java - 从文件插入对象数组

php - 如何在 PHP 中使用多个类

vba - 带有事件的应用程序

java - Netty 和预定执行器服务

java - 无法在 Springboot/Hibernate 中保存具有 OneToMany 关系的子对象

c# - C# 是否有一种自然的方法来检查单个字符串和多个正则表达式的正则表达式匹配,以及单次传递字符串?

algorithm - 为函数找到正确的复杂度类

java - Wicket 组件 ID 最佳实践