Cómo obtener el objeto Class para el parámetro de tipo T en Java?
¡Hola a todos! Llevo poco tiempo programando en Java y me encontré con un problema al trabajar con genéricos. Tengo una clase genérica y necesito obtener dentro de ella una instancia de Class (Class) para el parámetro de tipo T. Por ejemplo, quiero crear una instancia de T mediante reflexión o pasarla a algún método que requiera Class.
Aquí hay un ejemplo de código que no funciona:
```java
public class MyGenericClass {
public void doSomething() {
// Aquí quiero obtener Class, pero no sé cómo
Class clazz = T.class; // ¡Error de compilación!
// Luego quiero, por ejemplo, crear una nueva instancia de T
T instance = clazz.newInstance();
}
}
```
El compilador se queja: "Cannot select from a type variable". Entiendo que debido al borrado de tipos (type erasure), la información sobre T se pierde durante la ejecución. Pero entonces, ¿cómo se hace? He visto que en algunos frameworks (por ejemplo, Gson o Spring) de alguna manera obtienen clases para los tipos. ¿Quizás hay algún patrón o solución alternativa?