打字猴:1.700481299e+09
1700481299 根据一个父类取得所有子类,是一个非常好的工具类,其实现如代码清单34-8所示。
1700481300
1700481301 代码清单34-8 根据父类获得子类
1700481302
1700481303 public class ClassUtils{
1700481304
1700481305 //根据父类查找到所有的子类,默认情况是子类和父类都在同一个包名下
1700481306
1700481307 public static List<Class>getSonClass(Class fatherClass){
1700481308
1700481309 //定义一个返回值
1700481310
1700481311 List<Class>returnClassList=new ArrayList<Class>();
1700481312
1700481313 //获得包名称
1700481314
1700481315 String packageName=fatherClass.getPackage().getName();
1700481316
1700481317 //获得包中的所有类
1700481318
1700481319 List<Class>packClasses=getClasses(packageName);
1700481320
1700481321 //判断是否是子类
1700481322
1700481323 for(Class c:packClasses){
1700481324
1700481325 if(fatherClass.isAssignableFrom(c)&&!fatherClass.equals(c)){
1700481326
1700481327 returnClassList.add(c);
1700481328
1700481329 }
1700481330
1700481331 }
1700481332
1700481333 return returnClassList;
1700481334
1700481335 }
1700481336
1700481337 //从一个包中查找出所有的类,在jar包中不能查找
1700481338
1700481339 private static List<Class>getClasses(String packageName){
1700481340
1700481341 ClassLoader classLoader=Thread.currentThread()
1700481342
1700481343 .getContextClassLoader();
1700481344
1700481345 String path=packageName.replace(’.’,’/’);
1700481346
1700481347 Enumeration<URL>resources=null;
1700481348
[ 上一页 ]  [ :1.700481299e+09 ]  [ 下一页 ]