Creo una classe di preferenze e per i Getters non voglio usare token di tipo runtime.Ottieni istanza di Classe <T> [Token di tipo runtime]
Così qui è il mio metodo getter:
public <T> T get(String key, Class<T> clazz) {
// do some crazy stuff (e.g. Double <-> Float)
}
Fino a che, tutto funziona bene. Ma mi piacerebbe che il parametro di classe fosse opzionale.
boolean b = preferences.get(key);
Così ho aggiungere un ulteriore metodo:
public <T> T get(String key) {
// return get(key, Class<T>);
}
Ora la domanda: C'è un modo per farlo? C'è un modo per ottenere un'istanza di Class<T>
.
E 'possibile con una piccola soluzione:
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");
Cerca di non copiare e incollare la stessa risposta a più domande - se le domande stesse sono le stesse, considera invece di contrassegnarle come duplicate. Ho annullato questa risposta da quando hai rimosso l'altro. – BoltClock
@BoltClock In realtà, ho accidentalmente postato la mia risposta in quell'altra domanda. Io ** ho cancellato immediatamente ** quello e l'ho postato qui. Quindi la mia risposta non esiste mai due volte. [JFYI] –
Ah, capisco. A volte il sistema diventa schizzinoso sulle risposte incollate. Grazie per averlo chiarito! – BoltClock