Tôi có thể chuyển đối số cho hàm tạo lớp Scala không được lưu trữ trong lớp không? Tôi muốn đạt được chức năng trong Java có thể được viết như sau:Trình xây dựng lớp Scala các tham số cục bộ
class A {
private final SomethingElse y;
public A(Something x) {
y = x.derive(this);
}
}
I.e. class constructor nhận tham số sau đó được chuyển thành giá trị khác bằng cách sử dụng tham chiếu đến this
. Tham số bị quên sau khi hàm tạo trả về.
Trong Scala tôi có thể làm:
class A(x: Something) {
val y = x.derive(this)
}
Nhưng nó có nghĩa là x
được lưu trữ trong các lớp học, mà tôi muốn tránh. Vì phương thức x.derive
sử dụng tham chiếu đến this
, tôi không thể thực hiện phép chuyển đổi trong đối tượng đồng hành.