1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
public static <K, V> Map<K, V> asMap(final List<? extends V> items, final String keyProperty) {
Map<K, V> result = null;
if (items != null && !items.isEmpty()) {
result = new HashMap<K, V>();
try {
final Class<?> clazz = items.get(0).getClass();
final Field fieldKey = clazz.getDeclaredField(keyProperty);
fieldKey.setAccessible(true);
for (final V item : items) {
final K key = (K) fieldKey.get(item);
result.put(key, item);
}
if (result.size() != items.size()) {
LOG.error("asMap : Key Deja existante !");
result = null;
}
} catch (final NoSuchFieldException e) {
throw new IllegalArgumentException("La clé " + keyProperty + " est inexistante");
} catch (final Exception e) {
LOG.error("Exception asMap()", e);
result = null;
}
}
return result;
} |
Partager