Я заметил это критическое (для меня, использующего его с OGNL) изменение в 2.9.0-1:
Я обнаружил, что в версии 2.9 методы, объявленные в типаже, становятся изменчивыми при смешивании с классом:
Пример в 2.9.0-1
import java.lang.reflect.Modifier
trait SuperTrait {
def getKnoll = "Kanutten"
}
class KlassWithKnoll extends SuperTrait {
def getKnall = "Mars"
}
val qsc = classOf[KlassWithKnoll]
val knollGetter = qsc.getDeclaredMethod("getKnoll")
println("isVolatile: " + Modifier.isVolatile(knollGetter.getModifiers()))
Это распечатывает
isVolatile: true
Но в 2.8.1:
он распечатывает
isVolatile: false
Это на самом деле критическое изменение для меня, поскольку OGNL отказывается выполнять volatile (почему я не знаю) в своих выражениях.
Итак, мой вопрос; Почему было внесено это изменение?
getKnoll
иgetKnall
просто опечатка? - person agilesteel   schedule 21.07.2011