zoukankan      html  css  js  c++  java
  • java 自定义泛型

    package generic;
    
    import java.util.*;
    public class GenericTest {
        /*
         * 1.泛型在继承方面的体现,虽然A 是 B 的父类,但是G<A> 和 G<B> 不具有子父类关系,二者是并列关系
         *      A 是 B的父类, A<G> 和 B<G> 具有子父类关系
         * 
         * */
        public void test() {
            
        }
        
        /*
         * 2.通配符 ?
         *     A 是 B的父类,G<A>和G<B>是并列关系,二者共同父类是G<?>
         *     并且G<?>内不能再添加数据  ,除了null 
         * */
        public void test3() {
            List<Object> list1 = null;
            List<String> list2 = null;
            List<?> list = null;
            
            List<String> list3 = new ArrayList<>();
            list3.add("AA");
            list3.add("BB");
            list3.add("CC");
            list = list3;
            //添加:只能加null
            list.add(null);
            //读取:只能用Object去读取
            Object obj = list.get(0);
        }
        public void print(List<?> list) {
            Iterator<?> iterator = list.iterator();
            while(iterator.hasNext()) {
                Object obj = iterator.next();
                System.out.println(obj);
            }
        }
        
        /*
         *  ? extends Person: Person及其子孙类
         *  ? super Person: Person及其父类
         * */
        public void test4() { 
            List<? extends Person> list1 = null;
            List<? super Person> list2 = null;
            
            List<Student> list3 = null;
            List<Person> list4 = null;
            List<Object> list5 = null;
            
            //赋值:
            list1 = list3;
            list1 = list4;
            //list1 = list5;
            
            //list2 = list3;
            list2 = list4;
            list2 = list5;
        
            //获取
            list1 = list3;
            Person p=list1.get(0);
            
            list2 = list4;
            Object obj = list2.get(0);
            
            //添加
        }
    }
    class Person {
    }
    class Student extends Person{
    }

    1

  • 相关阅读:
    关于机器学习系统的方向
    图像去雾
    中国九十年代摇滚
    matlab 将数字矩阵转换成图像
    vue-router路由守卫ie浏览器下报错问题解决
    vue:index.html、main.js、app.vue
    vue关于for循环
    element-ui表单校验
    记录vue组件引入components两次的后果
    vue组件通信
  • 原文地址:https://www.cnblogs.com/zsben991126/p/11863922.html
Copyright © 2011-2022 走看看