es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Una forma de reemplazar el tipo de objeto para un campo en un POJO que extiende otro POJO.

Digamos que tengo una clase

public class ParentClass {
    private String field1;
    private String field2;
    private String field3;
    private List<anotherparentpojo> evses;
}

public class AnotherChildPojo extends AnotherParentPojo {
    private String fieldA;
    private String fieldB;
    private String fieldC;
}

public class ChildClass extends ParentClass {
    private List<anotherchildpojo> evses;
}

Sin embargo, esto conduce al error “ambos métodos tienen la misma borradura, pero ninguno anula al otro” en la clase ChildClass. Soy consciente de que no es posible anular un campo, pero ¿hay alguna manera de lograr esto sin tener que cambiar ParentClass o AnotherParentPojo? Solo tengo control sobre ChildClass y AnotherChildPojo.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Puedes lograr esto utilizando genéricos en la clase Hija. Puedes declarar un nuevo parámetro de tipo, digamos T, y utilizarlo en la declaración de la lista en la clase Hija. Luego, puedes proporcionar el argumento de tipo para T como AnotherChildPojo.

    Aquí está la clase Hija modificada:

    public class ChildClass<t extends="" anotherchildpojo=""> extends ParentClass {
        private List<t> evses;
    }
    

    Esto debería resolver el error y permitirte utilizar AnotherChildPojo en la clase Hija sin modificar ParentClass o AnotherParentPojo.

Comments are closed.