黑马程序员技术交流社区
标题:
关于泛型的小问题
[打印本页]
作者:
ς高眼光の目标
时间:
2014-3-21 15:53
标题:
关于泛型的小问题
什么情况下使用上限,和下限呢?
作者:
乔钰博
时间:
2014-3-21 17:08
假设一个方法中能接受的泛型对象只能是数字类型,则在定义这个方法参数接受对象的时候就必须指定泛型的上限。因为所有的数字包装类都是Number的子类,所以代码如下
public class Test {
public static void main(String[] args) {
Point<Integer> p = new Point<Integer>();
Point<Double> p1 = new Point<Double>();
p.setVar(100);
p1.setVar(100.1);
print(p);
print(p1);
}
public static void print(Point<? extends Number> p){
System.out.println(p.getVar());
}
}
复制代码
当使用的泛型只能在本类或者其父类类型上应用时,就必须使用泛型的范围下限进行配置:
public class Test {
public static void main(String[] args) {
Point<String> p = new Point<String>();
Point<Object> p1 = new Point<Object>();
p.setVar("abc");
p1.setVar(new Object());
print(p);
print(p1);
}
public static void print(Point<? super String> p){
System.out.println(p.getVar());
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2