Java 在运行时从包中获取绝对类名
如果我们有一个包名,就说Java 在运行时从包中获取绝对类名,java,Java,如果我们有一个包名,就说com.google.foo.bar并且它有如下类 com.google.foo.bar.xyz com.google.foo.bar.abc 如何在运行时获取这些名称?绝对的,我的意思是。。。包名+类名。有什么术语吗?公共字符串getSourceBase(classx类) public String getSourceBase(Class<?> classx) { String cn = classx.getName().replace('.',
com.google.foo.bar
并且它有如下类
com.google.foo.bar.xyz
com.google.foo.bar.abc
如何在运行时获取这些名称?绝对的,我的意思是。。。包名+类名。有什么术语吗?公共字符串getSourceBase(classx类)
public String getSourceBase(Class<?> classx)
{
String cn = classx.getName().replace('.', '/') + ".class";
// like "packagex/SourceBase.class"
String s = classx.getResource('/' + cn).toExternalForm();
// like "file:/javadir/Projects/projectX/build/classes/packagex/SourceBase.class"
// or "jar:file:/opt/java/PROJECTS/testProject/dist/testProject.jar!/px/SourceBase.class"
return s.substring(0, s.lastIndexOf(cn));
// like "file:/javadir/Projects/projectX/build/classes/"
// or "jar:file:/opt/java/PROJECTS/testProject/dist/testProject.jar!/"
}
{
字符串cn=classx.getName().replace('.','/')+“.class”;
//比如“packagex/SourceBase.class”
字符串s=classx.getResource('/'+cn).toExternalForm();
//比如“文件:/javadir/Projects/projectX/build/classes/packagex/SourceBase.class”
//或者“jar:file:/opt/java/PROJECTS/testProject/dist/testProject.jar!/px/SourceBase.class”
返回s.substring(0,s.lastIndexOf(cn));
//比如“文件:/javadir/Projects/projectX/build/classes/”
//或者“jar:file:/opt/java/PROJECTS/testProject/dist/testProject.jar!”
}
您的意思是:如何在运行时获取特定包中包含的所有类的列表?或者您只是想在运行时获得特定对象的完全限定类名(package.ClassName)?@assylias-所有类的列表。。可能是一个起点。问题是我将从配置文件中读取一个包名,基于此,我需要找到所有具有包名的类。