从类中获取包名称

时间:2010-06-21 18:24:11

标签: java

我有以下java程序,它从目录中返回某些类。我想找到这些类的包名。我可以这样做吗? 任何代码都会有所帮助。

import java.util.*;
import java.io.*;

public class CreateTestPackage
{
    public void execute()
    {
        List<Class> findClasses(File directory) throws ClassNotFoundException
        {

            List<Class> classes = new ArrayList<Class>();
            if (!directory.exists())
            {
                return classes;
            }
            File[] files = directory.listFiles(new FilenameFilter()
            {
                public boolean accept( File dir, String name )
                {
                    return name.matches("test.*\\.class");
                }
            });
            for (File file : files)
            {
                if (file.isDirectory())
                {
                    assert !file.getName().contains(".");
                    classes.addAll(findClasses(file));
                }
                else if (file.getName().endsWith(".class"))
                {
                    classes.add(Class.forName(file.getName().substring(0, file.getName().length() - 6)));
                }
            }
            return classes;
        }
    }




}

1 个答案:

答案 0 :(得分:2)

for(Class c : classes) {
   c.getPackage().getName();
}