zoukankan      html  css  js  c++  java
  • JAVA高级复习-泛型通配符的使用

    /**
     * 通配符的使用
     * 通配符:?
     */
    public class GenericTest7 {
    
        /**
         * 类A 是 类B的父类,G<A> 和 G<B>是没有关系的,二者共同的父类是:G<?>
         */
        @Test
        public void test01() {
            List<Integer> list = new ArrayList<>();
            list.add(1);
            list.add(2);
    
            List<String> list2 = new ArrayList<>();
            list2.add("hi");
            list2.add("hello");
    
            List<Object> list3 = new ArrayList<>();
            list3.add(1);
            list3.add("bye");
            showList(list);
            showList(list2);
            showList(list3);
    
            List<?> listFather = null;
            listFather = list;
            listFather = list2;
            listFather = list3;
        }
    
        private void showList(List<?> list) {
            for (int i = 0; i < list.size(); i++) {
                Object obj = list.get(i);
                System.out.println(obj);
            }
        }
    
        @Test
        public void test02() {
            List<String> list = new ArrayList<>();
            list.add("AA");
            list.add("BB");
            List<?> listFather = null;
            listFather = list;
            //报错:add (capture<?>) in List cannot be applied to (java.lang.String)
            //结论:添加(写入)对于List<?>不能向其内部添加数据,除了添加null;
            //listFather.add("DD");
            listFather.add(null);
    
            //结论:获取(读取)对于List<?>允许读取数据,读取的数据类型为Object
            Object obj = listFather.get(0);
            System.out.println(obj);
        }
    
    }
    
  • 相关阅读:
    我说
    时间管理
    职场自我管理
    html元素不可见的三种方式
    windows查看端口占用情况
    windows下vbs脚本隐藏控制台
    找钥匙问题
    CSS中的偏僻知识点
    竖式谜题
    node库的选择
  • 原文地址:https://www.cnblogs.com/elnimo/p/13669599.html
Copyright © 2011-2022 走看看