打字猴:1.700481396e+09
1700481396
1700481397 if(file.isDirectory()){
1700481398
1700481399 assert!file.getName().contains(”.”);
1700481400
1700481401 classes.addAll(findClasses(file,packageName+”.”+file.getName()));
1700481402
1700481403 }else if(file.getName().endsWith(”.class”)){
1700481404
1700481405 try{
1700481406
1700481407 classes.add(Class.forName(packageName+’.’+file.getName().substring(0,
1700481408
1700481409 file.getName().length()-6)));
1700481410
1700481411 }catch(ClassNotFoundException e){
1700481412
1700481413 e.printStackTrace();
1700481414
1700481415 }
1700481416
1700481417 }
1700481418
1700481419 }
1700481420
1700481421 return classes;
1700481422
1700481423 }
1700481424
1700481425 }
1700481426
1700481427 这个类请大家谨慎使用,在核心的应用中尽量不要使用该工具,它会严重影响性能。再来看LSCommand类的实现,如代码清单34-9所示。
1700481428
1700481429 代码清单34-9 具体的ls命令
1700481430
1700481431 public class LSCommand extends Command{
1700481432
1700481433 public String execute(CommandVO vo){
1700481434
1700481435 //返回链表的首节点
1700481436
1700481437 CommandName firstNode=super.buildChain(AbstractLS.class).get(0);
1700481438
1700481439 return firstNode.handleMessage(vo);
1700481440
1700481441 }
1700481442
1700481443 }
1700481444
1700481445 很简单的方法,先建立一个命令族的责任链,然后找到首节点调用。在该类中我们使用CommandVO类,它是一个封装对象,其代码如代码清单34-10所示。
[ 上一页 ]  [ :1.700481396e+09 ]  [ 下一页 ]