@SuppressWarnings("rawtypes") public static List<Class> listByClass(String package) { try { List<Class> clzs = new ArrayList<Class>(); String packagePath = package.replace(".", "/"); URL url = Thread.currentThread().getContextClassLoader().getResource(packagePath); File file = new File(url.getPath()); if(!file.exists()) throw new SysException("初始化的包名路径不正确"); File []fs = file.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { if(pathname.getName().endsWith(".class")) return true; return false; } }); for(File f:fs) { String cname = p+"."+FilenameUtils.getBaseName(f.getName()); Class clz = Class.forName(cname); clzs.add(clz); } return clzs; } catch (ClassNotFoundException e) { e.printStackTrace(); } return null; } @SuppressWarnings({ "rawtypes", "unchecked" }) public static List<Class> listByClassAnnotation(String package,Class an) { try { List<Class> clzs = new ArrayList<Class>(); String packagePath = package.replace(".", "/"); URL url = Thread.currentThread().getContextClassLoader().getResource(packagePath); File file = new File(url.getPath()); if(!file.exists()) throw new SysException("初始化的包名路径不正确"); File []fs = file.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { if(pathname.getName().endsWith(".class")) return true; return false; } }); for(File f:fs) { String cname = p+"."+FilenameUtils.getBaseName(f.getName()); Class clz = Class.forName(cname); if(clz.isAnnotationPresent(an)) clzs.add(clz); } return clzs; } catch (ClassNotFoundException e) { e.printStackTrace(); } return null; }
根据包名获取Class对象
原创
©著作权归作者所有:来自51CTO博客作者mingyongyao_cto的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:FileUtils
下一篇:struts2 ognl
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
java将map中的值放到对象中
java将map中的值放到对象中
Java if语句 java -
承前启后,Java对象内存布局和对象头JVM Java