Interger <* Comparable<Integer> #258
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem: Für Integer <. A wird vermutlich für in greater { Integer, Comparable, Comparable<? extends Integer>, Comparable<? extends Comparable>, usw.} erzeugt.
Lösungsansatz (geht aber nicht)
für rekursiven Klassendeklarations-Vererbungen sollte für
Integer <. A
immer nur A = Integer und A = Comparable generiert werden.
Wenn dann
A <. Comparable<? extends Comparable>
gelöst werden muss, wird mit den adapt-Regeln eine Lösung gefunden.
Aber mit
Comparable<? extends Integer> <. A
klappt es nicht mehr.
Das Problem ist behoben, in dem rekursive Aufruf in der Methode greater ausgeschlosen sind.
Das reduziert Lösungen
Integer <. Comparable<Comparable>
müsste über adapt gehen
Aber
Integer <. a
Comparable <. a
würde zu einem Fehler führen, da
Integer <. a wird zu a =. Integer,
dann wird
Comparable <. a zu Comparable <. Integer
=> Fehler