2010-11-19 2 views
1

Ich habe eine Sammlung mit dem Elementtyp von <K extends Comparable<K>>, weil es bestellt ist.Generische Grenzen mit Rohtypen der Vorgenerika

Ich versuche, Joda LocalTime mit dieser Sammlung zu verwenden - z. MyCollection<LocalTime>. Leider ist Joda anscheinend Vor-Generika; LocalTime implementiert rohe Comparable.

Ich erhalte den Compiler-Fehler

Bound mismatch: The type LocalTime is not a valid substitute 
for the bounded parameter <K extends Comparable<K>> of the type Interval<K> 

Ich würde erwarten, dass dies nur mit einer Warnung arbeiten, da es durchaus möglich ist, eine rohe Art zu einer typisierten Variablen zugewiesen werden.

Warum funktioniert das nicht, und was kann ich dagegen tun?

Hier ist ein minimales Codebeispiel:

class Holder<K extends Comparable<K>> { } 
class WTF extends Holder<LocalTime> { } 

Antwort

1

Sie könnten eine Wrapper-Klasse um LocalTime zu schaffen, die implements Comparable<K> und gehen durch der alle Methodenaufrufe.

+0

Ja, das mache ich in der Zwischenzeit. Hässlich wie Sünde, auf der Suche nach einer besseren Lösung! –