Asignación simple de scala getter / setter
Digamos que tenemos una clase con una propiedad 'nombre':
class SuperFoo(var name: String)
Si deseo anular esto, por ejemplo, para agregar algún bloqueo alrededor de las llamadas:
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
}
}
}
Lo anterior produce un error de compilación:
super may be not be used on variable name
¿Alguna idea de cómo implementar correctamente esto? (es decir, anular el getter y setter para agregar bloqueos alrededor de ellos). ¡Gracias!