Box T.
T . ", "
Box<? extends Number>. ", ".
:
public void put(Box<? extends Number> box) {
put(box.get());
}
", ", T.
, T , -, . :
public class BoxClient {
public static void main(String[] args) {
Box<String> sBox = new Box<String>();
Box<Integer> iBox = new Box<Integer>();
iBox.put(1);
sBox.put(iBox);
System.out.println(sBox.get());
}
}
Box<String> "A Box " Box<Integer> "A Box, ".
generics , T , ,
java.lang.ClassCastException: java.lang.Integer java.lang.String
, Integer 1 String.
, , Box, T extends Number, :
public class Box<T extends Number> {
public T get() {
return element;
}
public void put(T element) {
this.element = element;
}
public void put(Box<? extends T> box) {
put((T) box.get());
}
private T element;
}
UPDATE:
, .
, Box<Number> Box<Integer>, .
bayou.io.
, , :
1:
2: , T
UPDATE2:
newacct, T .
, !