Scorciatoia per sottoclasse a Scala senza ripetere argomenti del costruttore?
-
11-09-2019 - |
Domanda
Diciamo che ho alcune classi in questo modo:
abstract class View(val writer: XMLStreamWriter) {
// Implementation
}
class TestView(writer: XMLStreamWriter) extends View(writer) {
// Implementation
}
La maggior parte delle sottoclassi di View non stanno andando a prendere diversi argomenti del costruttore. Mi piacerebbe essere in grado di scrivere qualcosa di simile a questo:
class TestView extends View {
// Implementation
}
C'è qualche scorciatoia per scrivere sottoclassi in modo che non c'è bisogno di definire esplicitamente le args costruttore e passarli alla superclasse (in modo che io non devo riscrivere tutti i miei sottoclassi se cambio la firma di la superclasse)?
Soluzione
Ho paura che sei sul proprio lì. I costruttori non sono ereditate o costruttori polimorfici e sottoclasse, pur dovendo sempre fare invocare un costruttore per la loro immediata superclasse, non e non possono avere quello fatto automaticamente, a meno che non ci sia un costruttore zero arg, che è implicita nella menzione di nome della superclasse in un "si estende" clausola.
Altri suggerimenti
abstract class View {
def writer: XMLStreamWriter
// Implementation
}
class TestView(val writer: XMLStreamWriter) extends View {
// Implementation
}
E 'questo quello che stai cercando?