1700481229
❑通过JNI(Java Native Interface)来调用与操作系统有关的动态链接库,当然前提是需要自己写一个动态链接库文件。
1700481230
1700481231
3个具体的命令都已经解析完毕,我们再来看看如何建立一条处理链,由于建链的任务已经移植到抽象命令类,我们就先来看抽象类Command,如代码清单34-7所示。
1700481232
1700481233
代码清单34-7 抽象命令
1700481234
1700481235
public abstract class Command{
1700481236
1700481237
public abstract String execute(CommandVO vo);
1700481238
1700481239
//建立链表
1700481240
1700481241
protected final List<?extends CommandName>buildChain(Class<?extends
1700481242
1700481243
CommandName>abstractClass){
1700481244
1700481245
//取出所有的命令名下的子类
1700481246
1700481247
List<Class>classes=ClassUtils.getSonClass(abstractClass);
1700481248
1700481249
//存放命令的实例,并建立链表关系
1700481250
1700481251
List<CommandName>commandNameList=new ArrayList<CommandName>();
1700481252
1700481253
for(Class c:classes){
1700481254
1700481255
CommandName commandName=null;
1700481256
1700481257
try{
1700481258
1700481259
//产生实例
1700481260
1700481261
commandName=(CommandName)Class.forName(c.getName())
1700481262
1700481263
.newInstance();
1700481264
1700481265
}catch(Exception e){
1700481266
1700481267
//TODO异常处理
1700481268
1700481269
}
1700481270
1700481271
//建立链表
1700481272
1700481273
if(commandNameList.size()>0){
1700481274
1700481275
commandNameList.get(commandNameList.size()-
1700481276
1700481277
1).setNext(commandName);
1700481278
[
上一页 ]
[ :1.700481229e+09 ]
[
下一页 ]