在OgnlRuntime,我们有:
static boolean isMethodCallable(Method m)
{
if ((isJdk15() && m.isSynthetic()) || Modifier.isVolatile(m.getModifiers()))
return false;
return true;
}
在getDeclaredMethods()中调用它,如果isMethodCallable()返回true,则跳过该方法。这意味着scala-trait中的所有方法(从scala-2.9开始)都不会被执行。
跳过volatile(以及合成的,编译器生成的)方法的原因是什么?
相关问题(由我):Methods in trait become volatile methods when mixed in concrete classes in 2.9.0-1 but not 2.8.1