Einfaches Scala Getter / Setter Override
Nehmen wir an, wir haben eine Klasse mit einer 'name'-Eigenschaft:
class SuperFoo(var name: String)
Wenn ich dies überschreiben möchte, um zB die Anrufe zu sperren:
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
}
}
}
Das obige erzeugt einen Kompilierungsfehler:
super may be not be used on variable name
Irgendwelche Ideen, wie man das richtig umsetzt? (d. h. den Getter & Setter überschreiben, um Sperren um sie herum hinzuzufügen). Vielen Dank!