他のクラスの 1 つのオブジェクトを格納できる汎用コンテナー クラスを作成したいと考えています。これは合理的なアプローチかもしれないと思いました:
class Container <T> {
private T thing;
public void Store(T obj) {
thing = obj;
}
public T ReturnIt() {
return thing;
}
}
これを Book クラスと一緒に試してみると、次のエラー メッセージが表示されます。
これがpublic T ReturnIt() { return thing; }
エラーの原因である可能性がありますか? これは Container-class に含まれるオブジェクトを返す方法が間違っているのでしょうか? -Xlint:unchecked でコンパイルしようとしたとき、それ以上の情報は得られませんでした。エラーメッセージについてどう思いますか?
エラーの原因となったコード:
class GenericContainer {
public static void main(String[] args) {
Container BookStorage = new Container <Book>();
Book thejavabook = new Book("The Java book");
BookStorage.Store(thejavabook);
}
}
class Book {
private String title;
Book(String title) {
this.title = title;
}
}
class Container <T> {
private T thing;
public void Store(T obj) {
thing = obj;
}
public T ReturnIt() {
return thing;
}
}