public class Box {
private Object content;
public void setContent(Object content) {
this.content = content;
}
public Object getContent() {
return content;
}
}
public class Container
private T item;
public void store(T item) {
this.item = item;
}
public T retrieve() {
return item;
}
}
// 泛型之前的痛苦经历 List rawList = new ArrayList(); rawList.add("hello"); rawList.add(123); // 编译通过,但埋下了隐患
String text = (String) rawList.get(1); // 运行时ClassCastException!
// 泛型带来的安全感
List
// 只能读取,不能写入的集合 public void processNumbers(List<? extends Number> numbers) {
for (Number num : numbers) {
System.out.println(num.doubleValue());
}
// numbers.add(new Integer(1)); // 编译错误!
}