美文网首页
泛型小记-----牢骚宣泄

泛型小记-----牢骚宣泄

作者: 关月003 | 来源:发表于2018-06-05 00:59 被阅读0次

    < ? extends T>
    < ? super T>

    参数化类型,存储,纯字面意思!什么破上界、下界无语。

    关于add()、get()受限,理解。

    参数化类型T 

    堪比绕口令

    < ? extends Fruit>  参数化类型为Fruit及其子类之一。。。。。。编译器也仅知道可以放入Fruit或是其子类,但是无法确定具体类型是Fruit或Apple或Pear,因此add()方法受限!!!

    get()取出时,赋值给Fruit    √

    反之< ? super Fruit>  参数化类型为Fruit及其父类之一。此时get()方法获取时,无法预知类型,可以按Object获取,但是毫无用处!!!

    add()放入时,由于参数化类型为Fruit或其父类之一,因而可以直接放入Fruit或其子类。


    反射绕过编译器泛型检查

    List<? extends Integer> list = new ArrayList<Integer>(); 
    Method method =  list.getClass().getMethod("add",Integer.class); 
    method.invoke(list,5);  //    list.add(5); 
    Integer a =  list.get(0); 
    System.out.println(a);

    摘自https://blog.csdn.net/atares0223/article/details/52469672

    相关文章

      网友评论

          本文标题:泛型小记-----牢骚宣泄

          本文链接:https://www.haomeiwen.com/subject/cgmusftx.html