读书人

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

发布时间: 2012-11-10 10:48:51 作者: rapoo

使用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去掉。

读书人网 >软件架构设计

热点推荐