如何获得使用Java反射类中定义的所有进口?如何获得使用Java反射类中定义的所有进口?(How t

2019-05-12 05:41发布

嗨,我是在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,但它没有得到很好的阐述是这样,需要帮助一些好的方向发展。

提前致谢。

Answer 1:

我只是想知道在一个类中使用反射定义的所有进口的列表

你不能因为编译器不把它们放入对象文件。 它抛出他们离开。 进口仅仅是一个速记编译器。



Answer 2:

进口产品在编译时的功能 - 有一种使用无处不在它提到的类型,使用*其中进口一切版本,并且通过全名进口类版本的全名,版本之间的编译的代码没有什么区别。

如果你想找到编译后的代码中使用的所有类型,这是一个稍微不同的问题。 你可能想在看BCEL作为分析字节码的方式。



Answer 3:

我认为你可以使用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);
    }


文章来源: How to get all imports defined in a class using java reflection?