码迷,mamicode.com
首页 > 其他好文 > 详细

简述<T> 与 <?>

时间:2018-02-05 21:38:31      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:down   值类型   类型   就是   out   总结   obj   1.5   概念   

  • jdk1.5以后引入了泛型的概念,即:<>,规定了集合中元素类型
    比如下面代码:

    List list1 = new ArrayList();
    List<String> list2 = new ArrayList();
    list1.add(1);
    list1.add("1");
    list2.add(1);//明显会报错
    总而言之就是,泛型规范了集合的元素的类型(让集合知道了自己应该装的是什么类型),不符合,编译不通过。
  • 分别代表:T - Type, E - Element,N - Number

  • 作用分析,如下

    public class Demo01 {
    @Test
    public void test() {
        Box<String> b = new Box<>();
        b.get();
    
    }
    }
    class Box<T>{
    public T get(T t) {return t;}
    }
  • Box类声明了泛型T,但是T的类型,是由引用者声明,一旦声明了T的类型,比如String;Box中的get方法的参数类型,返回值类型,也都是String。总而言之,该类中所有出现T的地方,都只接受T类型的参数。

<?>:

  • 等价于: <? extends Object>
  • 他叫作:类型通配符
  • 出现于方法的参数里

    public static void getData(Box<?> data) {
         System.out.println("data :" + data.getData());
    }
  • 作用:限制参数类型,
    • <?>:限制参数类型为 Object和其子类(不知道或者不关心参数的具体类型);
    • <? extends Number> :限制参数类型为Number和其子类;
    • <? super Number> :限制参数类型为Number和其父类;

简单总结:

简述<T> 与 <?>

标签:down   值类型   类型   就是   out   总结   obj   1.5   概念   

原文地址:https://www.cnblogs.com/kangkaii/p/8419113.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!