zoukankan      html  css  js  c++  java
  • JAVA高级复习-有限制条件的通配符的使用

    /**
     * 有限制条件的通配符的使用
     */
    public class GenericTest9 {
    
        /**
         * 结论:
         * ? extends A :
         *      G<? extends A> 可以作为G<A> 和 G<B>的父类,其中B是A的子类
         * ? super A :
         *      G<? super A> 可以作为G<A> 和 G<B>的父类,其中B是A的父类
         */
        @Test
        public void test01() {
            List<? extends Person> list = null;
            List<? super Person> list2 = null;
    
            List<Man> list3 = new ArrayList<>();
            list3.add(new Man("AA", 10));
    
            List<Person> list4 = new ArrayList<>();
            list4.add(new Person("AA"));
    
            List<Object> list5 = new ArrayList<>();
    
            list = list3;
    //        list = list4;
            //list5 不能 自动向上转型为list
    //        list = list5;
    
            Person person = list.get(0);
            //编译不通过
    //        Man man = list.get(0);
    
    
            //list3 不能 自动向上转型为list2
    //        list2 = list3;
            list2 = list4;
            list2 = list5;
    
            Object object = list2.get(0);
            //编译不通过
    //        Person p = list2.get(0);
    
            //写入数据:
    //        编译都不通过
    //        list.add(new Man("BB"));
    //        list.add(new Person());
    //        list.add(new Object());
    
            list2.add(new Man("CC"));
            list2.add(new Person());
    
        }
    }
    
    class Person {
        String name;
    
        public Person() {
        }
    
        public Person(String name) {
            this.name = name;
        }
    }
    
    class Man extends Person{
        Integer age;
    
        public Man(String name) {
            super(name);
        }
    
        public Man(String name, Integer age) {
            super(name);
            this.age = age;
        }
    }
    
  • 相关阅读:
    v-bind绑定属性
    vue 第二次学习笔记 v-once v-html
    P4428-[BJOI2018]二进制【树状数组,set】
    P5180-[模板]支配树
    《架构之美》阅读笔记一
    Python基础04----条件控制
    Tensorflow2.0笔记33——Keras 来搭建神经网络的“八股”套路
    每周总结
    架构漫谈阅读笔记01
    Tensorflow2.0笔记32——卷积神经网络
  • 原文地址:https://www.cnblogs.com/elnimo/p/13669860.html
Copyright © 2011-2022 走看看