Je vais créer un cours générique, d'abord je veux dire mon exigence. J'ai différentes classes, par exemple A, B etc. Je vais créer une instance de classe basée sur l'objet json. Cet objet json sera lu à partir du fichier. Le fichier peut contenir un objet json équivalent. Sur cette base, je vais créer une instance de cette classe en utilisant GSON. Maintenant, je fais face à une erreur à savoir incompatible types: T#1 cannot be converted to T#2
types incompatibles: T # 1 ne peut pas être converti en T # 2
Ceci est mon exemple de code
public class JsonLoader<T> {
private final Gson gson = new Gson();
private final T content;
public <T> JsonLoader(Class<T> clazz, String filePath) throws IllegalFileException {
if (filePath.isEmpty() || filePath == null) {
throw new IllegalFileException("IllegalFileException: source file must required.");
}
try (Reader reader = new FileReader(filePath)) {
T content= gson.fromJson(reader, clazz);
this.content = content;
} catch (IOException e) {
throw new IllegalFileException(e.getMessage(),e);
}
}
public <T> T getObject() {
return this.content;
}
}
S'il vous plaît aidez-moi.
Pouvez-vous poster plus d'informations sur l'erreur? Numéro de ligne? –
@Kevinrob 'types incompatibles: variable d'inférence T # 1 a des limites incompatibles contraintes d'égalité: T # 2 limites supérieures: T # 3, objet où T # 1, T # 2, T # 3 sont des variables de type: T # 1 étend l'objet déclaré dans la méthode fromJson (Reader, classe ) T # 2 étend l'objet déclaré dans le constructeur JsonLoader (classe , String) T # 3 étend l'objet déclaré en classe JsonLoader' –