Closed hoechp closed 7 years ago
Vielleicht könnte man passender Weise auch JsonPrimitive
- den Typ von primitiven Werten aus der gson-library - als Attributwert nutzen. Alle dort gültigen Werte sind, soweit ich weiß, Comparable.
the attribute type will just stay Object
for now.
Ich glaube, ohne eine Klasse für diese Attribute anzulegen ist es nicht möglich, dass
? extends Comparable<?>
umzusetzen. Beispielsweise eineHashMap<String, ? extends Comparable<?>>
kann höchstens mitnew HashMap<String, Comparable<?>>()
instanziiert werden. Und darauf kann man kein.put("key", "value")
aufrufen, selbst wenn man versucht"value"
nachComparable
zu casten, daComparable
nunmal ein Interface ist und keine Klasse und alles was vonComparable
erbt ist wieder ein Interface und keine Klasse.Die Lösung wäre entweder bei
Object
zu bleiben und beispielsweise Exceptions zu werfen, wenn etwas anderes alsInteger
,Long
,Double
,Boolean
oderString
verwendet wird.Oder alternativ müsste eine Klasse für die Attribute angelegt werden, in der eben etwas wie
class Attribute<T> implements Comparable<T>
steht.Soweit ich das sehe, gibt es sonst keine Möglichkeiten - und ich würde eher dazu tendieren, beim einfachen Object zu bleiben...