Czy mogę przekazywać argumenty do konstruktora klasy Scala, które nie są przechowywane w samej klasie? chcę osiągnąć funkcjonalność, która w Javie można zapisać następująco:Parametry lokalnego konstruktora klasy Scala
class A {
private final SomethingElse y;
public A(Something x) {
y = x.derive(this);
}
}
Tj konstruktor klasy przyjmuje parametr, który jest później transformowany do innej wartości za pomocą odwołania do this
. Parametr zostanie zapomniany po zwróceniu konstruktora.
W Scala mogę zrobić:
class A(x: Something) {
val y = x.derive(this)
}
Ale to znaczy, że x
jest przechowywany w klasie, który chcę uniknąć. Ponieważ metoda x.derive
używa odwołania do this
, nie mogę dokonać transformacji w obiekcie towarzyszącym.