Ich möchte einen Weg finden, um die objektspezifische Routine unten zu nehmen und es zu einer Methode zu abstrahieren, die eine Klasse, eine Liste und einen Feldnamen zurückgeben kann Karte. Wenn ich einen allgemeinen Zeiger auf das verwendete Muster bekommen könnte oder etc, könnte mich das in die richtige Richtung bringen.Java: Wie konvertiert man eine Liste <?> in eine Map <String,?>
Map<String,Role> mapped_roles = new HashMap<String,Role>();
List<Role> p_roles = (List<Role>) c.list();
for (Role el : p_roles) {
mapped_roles.put(el.getName(), el);
}
zu diesem? (Pseudocode)
Map<String,?> MapMe(Class clz, Collection list, String methodName)
Map<String,?> map = new HashMap<String,?>();
for (clz el : list) {
map.put(el.methodName(), el);
}
ist es möglich?
@Aircule: Man könnte den alten Funktor-Hack hier gut gebrauchen. –
Ich verstehe es nicht. Du willst eine Liste von 'x' Dingen haben und sie in eine Karte umwandeln, wo der Schlüssel der Dingname ist und der Wert das Ding ist? – OscarRyz
Richtig, der Schlüssel ist ein Zeichenfolgenwert, der von der übergebenen Methode zurückgegeben wird (Objekt Person hat Methodenname(), Personenname wird der Schlüssel), der Wert ist das Objekt selbst. Es ist viel einfacher Strings zu vergleichen, als ein Objekt zum Vergleich zur Hand zu haben. – ebt