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编译器将如何处理它?谢谢!我甚至没有意识到我必须在作业的两边都注明。谢谢!我甚至没有意识到我必须在作业的双方都详细说明。