ho i seguenti metodi:Generici Java: qual è il problema del compilatore qui? ("No unica istanza massima")
public <T> T fromJson(Reader jsonData, Class<T> clazz) {
return fromJson(jsonData, (Type)clazz);
}
public <T> T fromJson(Reader jsonData, Type clazz) {
...
}
Il compilatore è detto circa il primo metodo:
type parameters of <T>T cannot be determined;
no unique maximal instance exists for type variable T
with upper bounds T,java.lang.Object
return fromJson(jsonData, (Type)clazz);
^
Qual è il problema?
ha senso, grazie – Epaga
Questa risposta non è giusta. Sebbene l'implementazione del secondo metodo sia * probabilmente * non sicura per tipo (non possiamo vedere l'implementazione qui), non c'è nulla * tecnicamente * sbagliato riguardo alla dichiarazione del secondo metodo. – newacct
Non è quello che ho detto. Il mio argomento è 'Type' non ha parametri generici, quindi il cast ombreggia il' T' di 'Classe' che il compilatore dovrebbe usare, quindi l'errore. Ma hai ragione che puoi dire al compilatore il tipo con "questo". '. Ho migliorato la mia risposta. –