Java “…未检查或不安全操作”通用容器类

Java “…未检查或不安全操作”通用容器类,java,generics,containers,Java,Generics,Containers,我想创建一个泛型容器类,它可以包含其他类的一个对象。我认为这可能是一个合理的方法: class Container <T> { private T thing; public void Store(T obj) { thing = obj; } public T ReturnIt() { return thing; } } BookStorage变量的定义如下: Container<Book>

我想创建一个泛型容器类,它可以包含其他类的一个对象。我认为这可能是一个合理的方法:

class Container <T> {
    private T thing;

    public void Store(T obj) {
        thing = obj;
    }

    public T ReturnIt() {
        return thing;
    }
}

BookStorage变量的定义如下:

Container<Book> BookStorage = new Container <Book>();

BookStorage变量的定义如下:

Container<Book> BookStorage = new Container <Book>();

我已经重写了您的代码以解决问题并使用java命名标准:

package com.sandbox;

public class Sandbox {

    public static void main(String[] args) {
        Container<Book> bookStorage = new Container<Book>();  //fix for your warning!
        Book theJavaBook = new Book("The Java book");
        bookStorage.store(theJavaBook);
    }
}


class Book {
    private String title;   //this is unused

    Book(String title) {
        this.title = title;
    }
}


class Container<T> {
    private T thing;

    public void store(T obj) {
        thing = obj;
    }

    public T returnIt() {
        return thing;
    }
}
强调这一点:

Container<Book> bookStorage = new Container<Book>();  //fix for your warning!

你忘了在作业的左边写上

我已经重写了您的代码以解决问题并使用java命名标准:

package com.sandbox;

public class Sandbox {

    public static void main(String[] args) {
        Container<Book> bookStorage = new Container<Book>();  //fix for your warning!
        Book theJavaBook = new Book("The Java book");
        bookStorage.store(theJavaBook);
    }
}


class Book {
    private String title;   //this is unused

    Book(String title) {
        this.title = title;
    }
}


class Container<T> {
    private T thing;

    public void store(T obj) {
        thing = obj;
    }

    public T returnIt() {
        return thing;
    }
}
强调这一点:

Container<Book> bookStorage = new Container<Book>();  //fix for your warning!

你忘了在作业的左边写上

您是否尝试过-Xlint:未选中?它告诉你什么了?如果您使用Eclipse,Eclipse通常会给出关于这些事情的更详细的警告。是的,我这样做了。抱歉,如果我不清楚这一点-我在使用Xlint:unchecked命令编译它时收到了完全相同的错误消息。但正如jdb所指出的,我忘了在作业中使用。谢谢:您是否尝试过-Xlint:unchecked?它告诉你什么了?如果您使用Eclipse,Eclipse通常会给出关于这些事情的更详细的警告。是的,我这样做了。抱歉,如果我不清楚这一点-我在使用Xlint:unchecked命令编译它时收到了完全相同的错误消息。但正如jdb所指出的,我忘了在作业中使用。谢谢:太棒了!非常感谢。或者在当前版本的JavaSE中,Container bookStorage=new Container;什么意思是没有这项权利?它是否会不正确/Java编译器将如何处理它?太棒了!非常感谢。或者在当前版本的JavaSE中,Container bookStorage=new Container;什么意思是没有这项权利?它是否不正确/Java编译器将如何处理它?谢谢!我甚至没有意识到我必须在作业的两边都注明。谢谢!我甚至没有意识到我必须在作业的双方都详细说明。