J'ai les méthodes suivantes:Génériques Java: Quel est le problème du compilateur ici? ("Aucune instance maximale unique")
public <T> T fromJson(Reader jsonData, Class<T> clazz) {
return fromJson(jsonData, (Type)clazz);
}
public <T> T fromJson(Reader jsonData, Type clazz) {
...
}
Le compilateur dit au sujet de la première méthode:
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);
^
Quel est le problème?
est logique, merci – Epaga
Cette réponse ne va pas. Bien que l'implémentation de la deuxième méthode soit * probablement * non sécurisée (nous ne pouvons pas voir l'implémentation ici), il n'y a rien de mal * techniquement à propos de la déclaration de la seconde méthode. – newacct
Ce n'est pas ce que j'ai dit. Mon argument est 'Type' n'a pas de paramètre générique, donc le cast shadows le' T' de 'Class' que le compilateur doit utiliser, d'où l'erreur. Mais vous avez raison de dire au compilateur le type avec 'this. '. J'ai amélioré ma réponse. –