Простое переопределение метода получения / установки Scala
Позволять'скажем, у нас есть класс сназвание' имущество:
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
Есть идеи, как правильно это реализовать? (то есть переопределить получатель & сеттер для добавления блокировки вокруг них). Спасибо!