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

  • 相关阅读:
    EasyUI中页面必须刷新才显示tree组件最新数据的BUG解决方案
    tp2.2.2新特点
    easyui添加自定义验证规则
    TP第一天路由解析
    负载均衡和冗余技术
    smarty缓存控制
    smarty中section遍历数组
    鬼谷子绝学
    Python的Django框架中的URL配置与松耦合
    Python的Django框架中的URL配置与松耦合
  • 原文地址:https://www.cnblogs.com/zsben991126/p/11863922.html
Copyright © 2011-2022 走看看