Простое переопределение метода получения / установки Scala
Допустим, у нас есть класс со свойством name:
class SuperFoo(var name: String)
Если я хочу переопределить это, например, добавить некоторую блокировку вокруг вызовов:
class SubFoo(n: String) extends SuperFoo(n) {
val lock = new ReentrantLock
override def name(): String =
{
lock.lock
try {
super.name
} finally {
lock.unlock
}
}
override def name_=(arg: String): Unit = {
lock.lock
try {
super.name = arg
} finally {
lock.unlock
}
}
}
Выше выдает ошибку компиляции:
super may be not be used on variable name
Есть идеи, как правильно это реализовать? (т.е. переопределить метод получения и установки, чтобы добавить блокировку вокруг них). Спасибо!