在 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(以及合成的、编译器生成的)方法背后的原因是什么?
相关问题(由我提出):当在 2.9.0-1 但不是 2.8.1 的具体类中混合时,特征中的方法会变成易变的方法