Meine Idee ist eine generische JList.
Der Typ der Klasse wäre dann: class JList<T>
Zu ändernde Methoden wären dann zum Beispiel:
-T getSelectedValue()
-T[] getSelectedValues()
Zu ändernde Klassen: ListCellRenderer<T> und ListModel<T>
Entsprechend müssen die Methoden verändert werden:
Component getListCellRendererComponent(JList list, T value, int index, boolean isSelected, boolean cellHasFocus)
und
T getElementAt(int index)
Vorteil:
In einer Liste zeige ich normalerweise Objekte vom selben Typ (T) an.
Das heißt alle anzuzeigenden Objekte erben von T.
Damit kann man ClassCastExceptions vermeiden, da man ja garnicht casten muss.
Außerdem ist sichergestellt, dass der CellRenderer nichts rendern muss, was er garnicht kann.
(Aber die Vorteile von Generic Classes kennt ihr sicherlich selbst.)
Was haltet ihr davon, bzw. warum hat das sun das seit der Einführung von Generic noch nicht verändert?
Der Typ der Klasse wäre dann: class JList<T>
Zu ändernde Methoden wären dann zum Beispiel:
-T getSelectedValue()
-T[] getSelectedValues()
Zu ändernde Klassen: ListCellRenderer<T> und ListModel<T>
Entsprechend müssen die Methoden verändert werden:
Component getListCellRendererComponent(JList list, T value, int index, boolean isSelected, boolean cellHasFocus)
und
T getElementAt(int index)
Vorteil:
In einer Liste zeige ich normalerweise Objekte vom selben Typ (T) an.
Das heißt alle anzuzeigenden Objekte erben von T.
Damit kann man ClassCastExceptions vermeiden, da man ja garnicht casten muss.
Außerdem ist sichergestellt, dass der CellRenderer nichts rendern muss, was er garnicht kann.
(Aber die Vorteile von Generic Classes kennt ihr sicherlich selbst.)
Was haltet ihr davon, bzw. warum hat das sun das seit der Einführung von Generic noch nicht verändert?