首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

应用MVEL需要值得注意的地方

2012-11-10 
使用MVEL需要值得注意的地方do {propertyHandlerClass.put(clazz, propertyHandler)for (Class c : clazz

使用MVEL需要值得注意的地方

do {            propertyHandlerClass.put(clazz, propertyHandler);            for (Class c : clazz.getInterfaces()) {                propertyHandlerClass.put(c, propertyHandler);            }        }        while ((clazz = clazz.getSuperclass()) != null && clazz != Object.class);

?

使用MVEL的PropertyHandlerFactory注册自己的处理类时,一定要注意,MVEL会把该class的interface都会注册为该处理类。

?

简单的说:

?

class C implements A,B

class D implements A

class E implements B

?

如果注册C的处理类为CHandler,从上面的代码就可以看出,MVEL会把C的处理类也当作A和B的处理类。那么,MVEL在解析D时,就会使用CHandler,这样肯定会ClassCastException。

?

唯一的办法就是,注册上去之后,再把interface去掉。

热点排行