A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 清秋 黑马帝   /  2011-11-25 15:08  /  1953 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 清秋 于 2011-11-26 01:21 编辑

大家对泛型的限定如何理解?

不懂了。。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

3 个回复

倒序浏览
泛型上限:
所谓的泛型上限:
  |-  就是限制泛型的取值范围。
  |-  最高不能超过一个指定的类型

  1. public class Point<T extends Number> {
  2.         private T x;
  3.         private T y;
  4.         public Point(T x, T y) {        this.x = x;        this.y = y;}
  5.         public T getX() { return x;        }
  6.         public void setX(T x) {        this.x = x;        }
  7.         public T getY() {        return y;        }
  8. }
  9. 语句解释:
  10. 此时就限制了 Point<T> 类只能接受是Number和Number子类的对象。

  11. 测试代码:
  12. public class Test {
  13.         public static void main(String[] args) {
  14.                 Point<Integer> p1 = new Point<Integer>(12,23);  // 没问题。
  15.                 Point<String> p2 = new Point(String)("120E","40N");  //错误。
  16.         }
  17. }
复制代码
泛型下限:
所谓的泛型下限:
  |-  就是限制泛型的取值范围。
  |-  最低不能低过一个指定的类型。

  1. public class Test {
  2.         public static void main(String[] args) {
  3.                 Point<? super String> p = new Point<String>("123E","40N");
  4.         }
  5. }
复制代码
限制point类只能表示String或其以上类型的坐标
回复 使用道具 举报
清秋 黑马帝 2011-11-26 01:22:58
藤椅
hou3172568 发表于 2011-11-25 15:49
泛型上限:
所谓的泛型上限:
  |-  就是限制泛型的取值范围。

上限比下限好理解多了
回复 使用道具 举报

限定通配符的上边界:vector<? extends Number>  //只能是Number的子类
限定通配符的下边界:vector<? super Integer> //只能是Integer的父类
限定符总是包括自己
这就是泛型的上下限了

评分

参与人数 2技术分 +2 黑马币 +10 收起 理由
admin + 2 赞一个!
风华 + 10 张老师说的,很实用

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马