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
1700481349
try{
1700481350
1700481351
resources=classLoader.getResources(path);
1700481352
1700481353
}catch(IOException e){
1700481354
1700481355
//TODO Auto-generated catch block
1700481356
1700481357
e.printStackTrace();
1700481358
1700481359
}
1700481360
1700481361
List<File>dirs=new ArrayList<File>();
[
上一页 ]
[ :1.700481312e+09 ]
[
下一页 ]