Kann ich Argumente an Scala-Klassenkonstruktor übergeben, die nicht in der Klasse selbst gespeichert werden? Ich möchte Funktionalität erreichen, die in Java geschrieben werden könnte wie folgt:Scala-Klasse Konstruktor lokale Parameter
class A {
private final SomethingElse y;
public A(Something x) {
y = x.derive(this);
}
}
D.h. Der Klassenkonstruktor nimmt Parameter, die später in einen anderen Wert umgewandelt werden, indem er auf this
verweist. Der Parameter wird vergessen, nachdem der Konstruktor zurückgegeben wurde.
In Scala kann ich tun:
class A(x: Something) {
val y = x.derive(this)
}
Aber es bedeutet, dass x
in der Klasse gespeichert, die ich vermeiden will. Seit x.derive
Methode verwendet Verweis auf this
, kann ich die Transformation in Companion-Objekt nicht vornehmen.