angenommen ich habe sehr viele klassen, die alle die Klasse A extenden und alle eine Methode bieten sollen, die das Objekt selbst zurückgibt (warum auch immer...), wobei der return-type der entsprechende untertyp sein soll, also nicht A, sondern zb ExtendedA. ist es mit generics (oder sonst wie) möglich, diese methode in der abstrakten klasse A zu implementieren und nicht in unzähligen subklassen?
mein ansatz wäre gewesen:
dies funktioniert nicht. ich kann die methode abstrakt machen und somit erzwingen, dass sie jede subklasse implementiert, aber so wie oben bekomme ich einen "cannot convert from A<T> to T" error. (wobei ich schon verstehe, warum es nicht geht, aber nicht wie es stattdessen ginge bzw. ob überhaupt)
mein ansatz wäre gewesen:
Code:
public abstract class A<T extends A<T>> {
T getA() {
return this;
}
}
dies funktioniert nicht. ich kann die methode abstrakt machen und somit erzwingen, dass sie jede subklasse implementiert, aber so wie oben bekomme ich einen "cannot convert from A<T> to T" error. (wobei ich schon verstehe, warum es nicht geht, aber nicht wie es stattdessen ginge bzw. ob überhaupt)