当我遇到以下段落时,我正在从https://docs.oracle.com/javase/tutorial/java/generics/阅读Java文档:
一个简单的Box类首先要检查可对任何类型的对象进行操作的非通用Box类。它只需要提供两种方法:set(将对象添加到框中)和get(将其检索):
public class Box {
private Object object;
public void set(Object object) { this.object = object; }
public Object get() { return object; }
}
Run Code Online (Sandbox Code Playgroud)
由于它的方法接受或返回一个Object,因此只要它不是原始类型之一,您就可以随意传递所需的任何内容。在编译时无法验证类的使用方式。代码的一部分可能会将Integer放在框中,并期望从中取出Integer,而代码的另一部分可能会错误地传入String,从而导致运行时错误。
我运行了以下代码
public class Box {
private Object object;
public void set(Object object) { this.object = object; }
public Object get() { return object; }
}
Run Code Online (Sandbox Code Playgroud)
..
public class test {
public static void main(String[] args) {
Box box = new Box();
String s = "hello";
box.set(s);
System.out.print(box.get());
Box box2 = new …Run Code Online (Sandbox Code Playgroud)