Я нашел пример о члена абстрактного типа в работе Одерски (глава 2.1): http://lampwww.epfl.ch/~odersky/papers/ScalableComponent.pdfУстановить приватный var анонимным классом в Scala?
Я вставьте его ниже
abstract class AbsCell {
type T
val init: T
private var value: T = init
def get: T = value
def set(x:T):Unit = {value = x}
}
val cell = new AbsCell{ type T=Int; val init=1}
cell.set(cell.get + 1)
cell.get
The кодов не работает, как ожидалось в последней версии Scala (Scala Version: 2.11).
Я нашел значение последнего выражения cell.get
является 1, а то, что я ожидал, это 2. Причина заключается в том, что private var value: T = init
не очень хорошо работает для подмешать анонимного класса { type T=Int; val init=1}
.
У кого-нибудь есть идеи по этому поводу?
В этом вопросе нет миксинов. Это обычный анонимный класс. Кроме того, я бы не добавил Java-тег. –