Usando um tipo genérico de uma subclasse dentro da superclasse abstrata?
Dentro do meu código, temos a seguinte superclasse abstrata
public abstract class AbstractClass<Type extends A> {...}
e algumas aulas infantis como
public class ChildClassA extends AbstractClass<GenericTypeA> {...}
public class ChildClassB extends AbstractClass<GenericTypeB> {...}
Estou procurando uma maneira elegante de como posso usar o tipo genérico das classes filho (GenericTypeA, GenericTypeB, ...) dentro da classe abstrata de maneira genérica.
Para resolver esse problema, eu defini o método atualmente
protected abstract Class<Type> getGenericTypeClass();
na minha classe abstrata e implementou o método
@Override
protected Class<GenericType> getGenericTypeClass() {
return GenericType.class;
}
em todas as classes infantis.
É possível obter o tipo genérico das classes filho na minha classe abstrata sem implementar esse método auxiliar?
BR,
Markus