2020-12-14 泛型

泛型

  • 当方法静态时,不能访问类上定义的泛型,应该:
  public static <T> void show(T obj){ } //<T>的位置不能写错地方

普通方法也可以像上面这样写。

  • <?>表示通配符,在不需要对传入类型操作时使用,比较常用。
  • Collection<animal> test = new ArrayList<Dog>(); //不可以这样写,泛型类型不匹配。一般左右两边都得写成一样的

泛型的限定:
1.

  • <? extends Animal> 表示只接收Animal和Animal的子类。 即规定了上限。

一般在存储元素时都是用上限<? extends E>, 因为这样取出都是按照上限类型来运算的,比较安全。

2.

  • <? super E> 接受E类型或其父类。规定了下限。

一般在取出元素时使用,Comparator<? super Dog>。 当从TreeSet取出一个Dog()对象,可以用compare(Animal a1 , Animal a2)方法接收,提高代码复用。(用的不如 <?extends E>多)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值