celph_titled
Erfahrenes Mitglied
Hallo,
ich habe eine Klasse, die Metadaten von Liedern enthält, also Titel, Interpret usw.
Die Werte sind in einer HashMap gespeichert und die möglichen Schlüssel in der Unterklasse 'Field'. Die Daten haben unterschiedliche Typen (z.b. Titel als String, Tracknummer als Integer) und ich will nicht für jeden eine eigene get-Funktion schreiben.
Das müsste wahrscheinlich mit was generischem zu lösen sein, so dass getValue() immer den Typ des Feldes zurück gibt.
Ich dachte da an sowas:
Gibt es statt der 'Field'-Klasse jetzt irgendeine Möglichkeit eine Enum zu benutzen? Ich steh da ein bisschen auf dem Schlauch
eine generische Enum wie "public static enum Field<T>" scheint ja nicht möglich zu sein.
Ich hab den Verdacht, dass das Thema was hiermit zu tun hat:
http://www.tutorials.de/java/351335-api-experiment-generische-datenmodelle-mit-getyptem-zugriff.html
nur steig ich da nicht ganz durch, vor allem mit den ganzen Annotations.
Dankeschön im Voraus
ich habe eine Klasse, die Metadaten von Liedern enthält, also Titel, Interpret usw.
Die Werte sind in einer HashMap gespeichert und die möglichen Schlüssel in der Unterklasse 'Field'. Die Daten haben unterschiedliche Typen (z.b. Titel als String, Tracknummer als Integer) und ich will nicht für jeden eine eigene get-Funktion schreiben.
Das müsste wahrscheinlich mit was generischem zu lösen sein, so dass getValue() immer den Typ des Feldes zurück gibt.
Ich dachte da an sowas:
Code:
public class Metadata {
public static class <T> Field<T> {
public static final Field<String> ARTIST = new Field<String>();
public static final Field<String> TITLE = new Field<String>();
public static final Field<Integer> TRACKNUMBER = new Field<Integer>();
private Field() {
}
}
private final Map<Field<T>,T> map = new HashMap<Field<T>,T>();
public T getValue(Field<T> field) {
return map.get(field);
}
}
Gibt es statt der 'Field'-Klasse jetzt irgendeine Möglichkeit eine Enum zu benutzen? Ich steh da ein bisschen auf dem Schlauch

Ich hab den Verdacht, dass das Thema was hiermit zu tun hat:
http://www.tutorials.de/java/351335-api-experiment-generische-datenmodelle-mit-getyptem-zugriff.html
nur steig ich da nicht ganz durch, vor allem mit den ganzen Annotations.
Dankeschön im Voraus