web工程如何获得某个包的全部类名?
我的需求是这样的:比如我有好多个model类,都在统一包下比如com.text.model包下,可能有如下
com.text.model.userModel;
com.text.model.orgModel;
我如何能够获得com.text.model包下所有的类名(文件名也行)
就是我想要的结果是 userModel和orgModel
由于是web工程,可能使用war方式发布到weblogic这样的容器,weblogic发布的war包工程是没有目录的,所以file操作显然不行。
求大侠给点思路,反射?classLoader? --------------------编程问答-------------------- File.list() --------------------编程问答-------------------- 直接上代码好了
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> a = getSubPackages("java");
System.out.println(a);
}
/**
* 获取子包名
* @param parentPackageName 父包名
* @return
*/
private static List<String> getSubPackages(String parentPackageName) {
List<String> subPackages = new ArrayList<String>();
Package[] packages = Package.getPackages();
for(Package p : packages) {
if(p.getName().indexOf(parentPackageName+".") == 0) {
subPackages.add(p.getName());
}
}
return subPackages;
}
}
输出结果如下:
[java.net, java.util.zip, java.awt.event, java.util.concurrent, java.nio.channels.spi, java.util.concurrent.locks, java.lang.reflect, java.awt.font, java.security.spec, java.awt.datatransfer, java.beans, java.awt.print, java.lang.annotation, java.nio.charset, java.math, java.applet, java.lang.ref, java.awt.dnd.peer, java.util.concurrent.atomic, java.awt, java.awt.im, java.security.cert, java.awt.geom, java.util.spi, java.util.jar, java.awt.im.spi, java.io, java.text.spi, java.lang, java.awt.color, java.util.logging, java.awt.peer, java.util, java.nio.channels, java.security.inte易做图ces, java.rmi.server, java.awt.dnd, java.awt.image, java.util.regex, java.nio.charset.spi, java.nio, java.text, java.security]
--------------------编程问答-------------------- 看这个吧。
http://blog.csdn.net/xiaomianxiucai/article/details/7248190
补充:Java , Web 开发