sé que esta pregunta es antiguo, pero la mejor respuesta es incorrecta.
Puede obtener fácilmente los tipos genéricos mediante reflexiones. Aquí un ejemplo:
private Map<String, Integer> genericTestMap = new HashMap<String, Integer>();
public static void main(String[] args) {
try {
Field testMap = Test.class.getDeclaredField("genericTestMap");
testMap.setAccessible(true);
ParameterizedType type = (ParameterizedType) testMap.getGenericType();
Type key = type.getActualTypeArguments()[0];
System.out.println("Key: " + key);
Type value = type.getActualTypeArguments()[1];
System.out.println("Value: " + value);
} catch (Exception e) {
e.printStackTrace();
}
}
Esto le dará la salida:
Key: class java.lang.String
Value: class java.lang.Integer
¿Por qué querrías hacer eso? Ese es el propósito de ese método? – helpermethod
No entiendo completamente la pregunta, pero creo que la respuesta podría estar en el código de [Collection.toArray()] (http://download.oracle.com/javase/6/docs/api/java/util /Collection.html#toArray%28T[]%29). – Augusto
Su mapa real no tiene tipos genéricos, actualmente asigna 'Objeto' a' Objeto'. –