Creo una clase de Preferencias y para los Getters quiero utilizar el Token de tipo Runtime.Obtiene la instancia de la clase <T> [Token de tipo de tiempo de ejecución]
Así que aquí es mi método de obtención:
public <T> T get(String key, Class<T> clazz) {
// do some crazy stuff (e.g. Double <-> Float)
}
Hasta eso, todo funciona bien. Pero me gustaría que el parámetro de clase sea opcional.
boolean b = preferences.get(key);
Así que añadir un método adicional:
public <T> T get(String key) {
// return get(key, Class<T>);
}
Ahora la pregunta: ¿Hay una manera de hacer eso? ¿Hay alguna forma de obtener una instancia/de Class<T>
?
Es posible con una pequeña solución:
public <T> T get(String key, T... args) {
return get(key, (Class<T>) args.getClass().getComponentType());
}
public <T> T get(String key, Class<T> clazz) {
System.out.println("key : " + key);
System.out.println("clazz: " + clazz);
}
// using
Boolean b = get("mykey");
Trate de no copiar y pegar la misma respuesta a varias preguntas; si las preguntas son las mismas, considere marcarlas como duplicadas. He recuperado esta respuesta ya que eliminaste la otra. – BoltClock
@BoltClock En realidad, accidentalmente publiqué mi respuesta en esa otra pregunta. Yo ** borré inmediatamente ** ese y lo publiqué aquí. Entonces mi respuesta nunca existe dos veces. [JFYI] –
Ah, ya veo. Algunas veces el sistema se vuelve quisquilloso con las respuestas pegadas. ¡Gracias por aclararme! – BoltClock