关于JFinalUIB中ServicePlugin的循环处理Service实例化问题

吴道子真人 发布于 2016/06/06 21:50
阅读 535
收藏 0

仿照作者的ServicePlugin,批处理Service实例化:

for (Class service : modelClasses) {}循环处理:

BaseService baseService = null;

baseService = Enhancer.enhance(service); 

但是每次执行到:baseService = Enhancer.enhance(service); 时总报:Cannot subclass final class class java.lang.Class错误。

但是我把语句改成:baseService = Enhancer.enhance(ServiceName.Class); 这种方式正常执行

请问是什么原因?已经困扰我好久了!!

加载中
0
littleant
littleant
if(serviceBind.tx()){
 baseService = Enhancer.enhance(service, Tx.class); 	// 是
}else{
 try {
 baseService = (BaseService) service.newInstance(); //Enhancer.enhance(service);	// 否
 } catch (InstantiationException | IllegalAccessException e) {
 e.printStackTrace();
 }
}

吴道子真人
吴道子真人
回复 @littleant : 恩,是用的JDK8。那这样的话,baseService = Enhancer.enhance(service, Tx.class); // 是 这行怎么处理?
littleant
littleant
这个问题在前段时间改过了,你应该用的是JDK8吧?我也用8发现了才修复了
0
吴道子真人
吴道子真人
objService = Enhancer.enhance(service); // 否

baseService = (BaseService) objService;

使用Object 强转一下,貌似可以。。

littleant
littleant
恩,能解决问题就好,这个实例化就是系统启动时加载,两种实例化方式不会有什么太大差异
返回顶部
顶部