tengo la clase siguiente en mi mente:método de la clase abstracta Scala que devuelve una nueva clase correspondiente objeto secundario
abstract class MyClass (data: MyData) {
def update(): MyClass = {
new MyClass(process())
}
def process(): MyData = {
...
}
}
Sin embargo, las clases abstractas no pueden ser instanciadas por lo que la línea de new MyClass(process())
es un error. Mi pregunta es: ¿hay alguna forma de decirle al compilador que, en el caso de cada una de las clases secundarias de MyClass, quiero crear un objeto exactamente de esa clase? Parece un exceso de escribir este método en todas las clases de niños. Jugando con los parámetros de tipo de la clase o método no pude lograrlo yo mismo.
(no estoy seguro de si se ajustará a su caso de uso) ¿echó un vistazo a las clases de casos y cómo copiarlos? ... de todos modos si realmente quieres hacer eso, lucharás contra el borrado de tipos. –