public class Box <T> {
private T t;
public void Set(T t)
{
this.t = t;
}
public T get()
{
return this.t;
}
}
public class BoxDemo {
public static <U> void addBox(Box<U> item, List<Box<U>> boxes)
{
boxes.add(item);
}
public static <U> void print(List<Box<U>> boxes)
{
for (Box<U> item :boxes)
{
System.out.println(item.get());
}
}
public static <U> void addBox(U u,
java.util.List<Box<U>> boxes) {
Box<U> box = new Box<U>();
box.Set(u);
boxes.add(box);
}
public static void main(String args[])
{
//below 1.7
/* List<Box<Number>> listOBoxes =
new java.util.ArrayList<Box<Number>>();
*/
//1.7
List<Box<Number>> listOBoxes =
new java.util.ArrayList<>();
Box<Number> boxi = new Box<Number>();
boxi.Set(1);
addBox(boxi, listOBoxes);
Box<Number> boxd = new Box<Number>();
boxd.Set(2.2);
addBox(boxd, listOBoxes);
addBox(Integer.valueOf(20), listOBoxes);
// addBox(Integer.getInteger("34"), listOBoxes); //得到NULL,用法不对,
print(listOBoxes);
}
}
以下代码段显示了1.7和低于1.7的不同之处。
//below 1.7
/* List<Box<Number>> listOBoxes =
new java.util.ArrayList<Box<Number>>();
*/
//1.7
List<Box<Number>> listOBoxes =
new java.util.ArrayList<>();