zoukankan      html  css  js  c++  java
  • List<T> List<?> 区别用法

    List<T>是泛型方法,List<?>是限制通配符

    List<T>一般有两种用途:
    1、定义一个通用的泛型方法。
    伪代码:
    public interface Dao{
      List<T> getList(){};
    }
    
    List<String> getStringList(){
      return dao.getList();//dao是一个实现类实例
    }
    
    List<Integer> getIntList(){
      return dao.getList();
    }
    
    上面接口的getList方法如果定义成List<?> ,后面就会报错。‘

    2、限制方法的参数之间或参数和返回结果之间的关系。
    List<T> getList<T param1,T param2>
    
    这样可以限制返回结果的类型以及两个参数的类型一致。

    List<?>一般就是在泛型起一个限制作用。
    伪代码:
    public Class Fruit(){}
    
    public Class Apple extends Fruit(){}
    
    public void test(? extends Fruit){};
    
    test(new Fruit());
    test(new Apple());
    test(new String()); //这个就会报错
    
    这样可以现在test方法的参数必须是Fruit或其子类。
    

  • 相关阅读:
    网页抓取
    基本数据结构
    小节
    顺序统计量
    线性时间排序
    快速排序
    堆排序 Heapsort
    大数运算
    趣味题,文本中洞的数量
    nginx config配置
  • 原文地址:https://www.cnblogs.com/ouyangping/p/6364815.html
Copyright © 2011-2022 走看看