Substituição simples de getter / setter do Scala
Digamos que tenhamos uma classe com uma propriedade 'name':
class SuperFoo(var name: String)
Se eu quiser substituir isso, por exemplo, adicionar algum bloqueio em torno das chamadas:
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
}
}
}
O acima produz um erro de compilação:
super may be not be used on variable name
Alguma idéia de como implementar corretamente isso? (ou seja, substituir o getter & setter para adicionar bloqueio em torno deles). Obrigado!