嗨,我是在Java反射新domain.So任何人都可以指导我这个问题的方案。
我有一个名为“SomClass.java” 级 ,并将其导入一个名为“SomPackage.RefClass” 打包和一些其他的Java类库喜欢的java.lang ..等
现在,我希望得到了解所有通过反射在一个类中定义的进口。
import SomPackage.RefClass;
import java.lang.reflect.Field;
import java.io.IOException;
public class SomeClass{
RefClass refClass_Obj;
String nationality;
///some other members
}
我只是想知道在使用反射类中定义的所有进口的名单。
我已经看到了问题发布听到类似我Q,但它没有得到很好的阐述是这样,需要帮助一些好的方向发展。
提前致谢。
我只是想知道在一个类中使用反射定义的所有进口的列表
你不能因为编译器不把它们放入对象文件。 它抛出他们离开。 进口仅仅是一个速记编译器。
进口产品在编译时的功能 - 有一种使用无处不在它提到的类型,使用*其中进口一切版本,并且通过全名进口类版本的全名,版本之间的编译的代码没有什么区别。
如果你想找到编译后的代码中使用的所有类型,这是一个稍微不同的问题。 你可能想在看BCEL作为分析字节码的方式。
我认为你可以使用Qdox让所有的一类。它实际上不是通过反射的进口,但它可以成为你的目的:
String fileFullPath = "Your\\java\\ file \\full\\path";
JavaDocBuilder builder = new JavaDocBuilder();
builder.addSource(new FileReader( fileFullPath ));
JavaSource src = builder.getSources()[0];
String[] imports = src.getImports();
for ( String imp : imports )
{
System.out.println(imp);
}