zoukankan      html  css  js  c++  java
  • List<?>和List<T>的区别

    是java泛型的两种用法: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或其子类。
  • 相关阅读:
    MySQL之事务
    TP5之查询那些事
    TP5之上传多张图片
    PhpStorm之设置字体大小
    Git入门
    TP5之自定义分页样式
    TP之安全机制
    Navicat Premium连接服务器数据库
    IEnumerable 与 IEnumerable<T>
    关于递归
  • 原文地址:https://www.cnblogs.com/jtlgb/p/6066319.html
Copyright © 2011-2022 走看看