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;
        }
    }
    
  • 相关阅读:
    2020寒假简记
    感知神经网络模型与学习算法
    信息检索模型与评估
    Diffie-Hellman密钥交换
    RSA密码体制
    MySQL基准测试(benchmark)
    MySQL数据引擎
    MySQL 多版本并发控制(MVCC)
    MySQL事务管理
    利用dotnet restore 导入本地 .nupkg 包
  • 原文地址:https://www.cnblogs.com/elnimo/p/13669860.html
Copyright © 2011-2022 走看看