0

鉴于我有一个带有简单类名的字符串:

String className = "myClassName";

我确定在下面的某个地方有一个具有此名称的类:

"com.automation.qa.company.tests...."

我怎样才能得到这个类的规范名称?请帮助我找到 Java 中的最佳解决方案。

4

1 回答 1

0

创建一个方法,将可能的包名添加到指定的类名中,然后检查它是否可以使用Class.forName(...).

下面是一个示例,它将搜索当前类加载器可访问的所有包。您可能希望在其中放置一个过滤器,以便仅在可访问包的特定部分下搜索您的类。

public String findClass( String shortName) {
  for (Package pack : Package.getPackages()) {
    try {
      String resolvedName = pack.getName() + "." + className;
      Class class = Class.forName(resolvedName);
      return resolvedName;
    } catch (ClassNotFoundException e) {
      // intentionally blank
    }
  }
  return null;
}
于 2022-01-26T21:07:04.633 回答