查找给定包中的所有类

时间:2013-02-12 18:15:03

标签: java reflection package

给定一个包,是否可以找到其中的所有类?

例如,您如何找出java.lang中包含哪些类?

由于

1 个答案:

答案 0 :(得分:0)

这应该让你开始(看看控制台输出,它会有意义):

import com.google.common.collect.Multimap;
import org.reflections.Reflections;

import java.util.Map;

public class PackageWalker {
    public PackageWalker() {}

    public void walk() {
        Reflections reflections = new Reflections("org.reflections");
        for (String mmapName : reflections.getStore().getStoreMap().keySet()) {
            System.out.println("KEY["+mmapName+"]");
            Multimap<String,String> mmap = reflections.getStore().getStoreMap().get(mmapName);
            for (Map.Entry<String,String> entry: mmap.entries()) {
                System.out.println("  PAIR[ "+entry.getKey()+"="+entry.getValue()+" ]");
            }
        }
    }

    public static void main(String[] args) {
        new PackageWalker().walk();
    }
}

需要以下jars及其依赖项(使用常春藤格式):

    <dependency org="org.reflections" name="reflections" rev="0.9.8"/>

这是我的项目文件夹: http://www.filedropper.com/laboratorytar

你只需要确保Ivy与ant一起安装(基本上将ivy.jar放入你的ANT_HOME / lib(或〜/ .ant / lib / on * nix),它就可以了。)