私はジェネリッククラスを1つ作成します。私は異なるクラスを持っています。 A、Bなど。jsonオブジェクトに基づいてクラスのインスタンスを作成します。このjsonオブジェクトはファイルから読み込まれます。ファイルには相当するjson object.basedが含まれています.GSONを使用してそのクラスのインスタンスを作成します。今私は私を助けてくださいつのエラー、すなわちincompatible types: T#1 cannot be converted to T#2
互換性のないタイプ:T#1はT#2に変換できません
は、これは私のコードサンプル
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;
}
}
です直面しています。
エラーに関する詳細情報を投稿できますか?行番号? –
@Kevinrob '互換性のない型:推論変数T#1には互換性のない境界があります 等価制約:T#2 上限:T#3、オブジェクト ここでT#1、T#2、T#3は型変数です: T#1は、方法で宣言されたオブジェクトを拡張fromJson(リーダー、クラス) T#2拡張オブジェクト(文字列、クラス)コンストラクタ JsonLoaderで宣言された3 –