Tôi có lớp sau trong tâm trí tôi:Scala phương pháp lớp trừu tượng mà trả về một lớp tương ứng đối tượng trẻ mới
abstract class MyClass (data: MyData) {
def update(): MyClass = {
new MyClass(process())
}
def process(): MyData = {
...
}
}
Tuy nhiên, lớp trừu tượng không thể được khởi tạo nên dòng new MyClass(process())
là một lỗi. Câu hỏi của tôi là - có cách nào để nói với trình biên dịch rằng trong trường hợp của mỗi lớp con của MyClass tôi muốn tạo ra một đối tượng chính xác mà lớp con? Có vẻ như một overkill để viết phương pháp này awhole trong tất cả các lớp học trẻ em. Chơi với các tham số kiểu của lớp hoặc phương thức tôi không thể đạt được điều đó.
(không chắc chắn nếu nó phù hợp với trường hợp sử dụng của bạn) bạn đã xem qua các trường hợp và cách sao chép chúng? ... dù sao nếu bạn thực sự muốn làm điều đó, bạn sẽ chiến đấu chống lại loại tẩy xoá. –