黑马程序员技术交流社区
标题:
泛型的限定
[打印本页]
作者:
清秋
时间:
2011-11-25 15:08
标题:
泛型的限定
本帖最后由 清秋 于 2011-11-26 01:21 编辑
大家对泛型的限定如何理解?
不懂了。。
作者:
侯伟浩
时间:
2011-11-25 15:49
泛型上限:
所谓的泛型上限:
|- 就是限制泛型的取值范围。
|- 最高不能超过一个指定的类型
public class Point<T extends Number> {
private T x;
private T y;
public Point(T x, T y) { this.x = x; this.y = y;}
public T getX() { return x; }
public void setX(T x) { this.x = x; }
public T getY() { return y; }
}
语句解释:
此时就限制了 Point<T> 类只能接受是Number和Number子类的对象。
测试代码:
public class Test {
public static void main(String[] args) {
Point<Integer> p1 = new Point<Integer>(12,23); // 没问题。
Point<String> p2 = new Point(String)("120E","40N"); //错误。
}
}
复制代码
泛型下限:
所谓的泛型下限:
|- 就是限制泛型的取值范围。
|- 最低不能低过一个指定的类型。
public class Test {
public static void main(String[] args) {
Point<? super String> p = new Point<String>("123E","40N");
}
}
复制代码
限制point类只能表示String或其以上类型的坐标
作者:
清秋
时间:
2011-11-26 01:22
hou3172568 发表于 2011-11-25 15:49
泛型上限:
所谓的泛型上限:
|- 就是限制泛型的取值范围。
上限比下限好理解多了
作者:
楓林虹影
时间:
2011-11-26 09:47
限定通配符的上边界:vector<? extends Number> //只能是Number的子类
限定通配符的下边界:vector<? super Integer> //只能是Integer的父类
限定符总是包括自己
这就是泛型的上下限了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2