zoukankan      html  css  js  c++  java
  • java-集合框架-泛型2-泛型限定

    package cn.burce.Genetic;
    
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    
    import cn.burce.Hotel.*;
    
    public class GeneticLearnHotel {
        /*
         * 将酒店的员工,厨师、服务员、经理分别存在3个集合里 定义方法,可以同时遍历3个集合,并调用工作方法
         */
    
        public static void main(String[] args) {
            ArrayList<Cooker> c = new ArrayList<>();
            ArrayList<Waiter> w = new ArrayList<>();
            ArrayList<Manager> m = new ArrayList<>();
            c.add(new Cooker("厨师1", 1011));
            c.add(new Cooker("厨师2", 1012));
            c.add(new Cooker("厨师3", 1013));
            w.add(new Waiter("服务员1", 1021));
            w.add(new Waiter("服务员2", 1022));
            w.add(new Waiter("服务员3", 1023));
            m.add(new Manager("经理", 1030, 1000));
            // ArrayList<String> m = new ArrayList<>(); 不是employee的子类报错
            function(c);
            function(w);
            function(m);
        }
    
        /*
         * 定义方法,可以同时遍历3集合,并调用方法 ?通配符,迭代器it.next()取出来的是object类型,调用不了方法
         * 强制转换:it.next()=object o ==>employee 这样有风险,假设集合里不全是employee的子类就报错了
         * 方法参数形式:控制住,参数只可以传递employee对象或者其子类 泛型的限定,本案例,父类固定为employee,子类可以是无限种
         * 用?extends Employee 限制父类,上限限定  可以传递employee或者其子类
         * 用?super Employee 限制子类,下限限定可以传递employee或者其父类
         */
        public static void function(ArrayList<? extends Employee> coll) {
            Iterator<? extends Employee> it = coll.iterator();
            while (it.hasNext())
            {
                //System.out.println(it.next().getName());不知道为啥一加就报错
                it.next().work();
            }
        }
    }

  • 相关阅读:
    Android大牛
    在学习oauth时学到的
    using-jade-and-grunt-to-speed-up-html-production
    build-your-microservices-api-with-swagger
    json-web-token-apache-shiro
    WebSocket对象特性和方法
    芝麻教程
    how to export multiple SVG graphics in illustrator
    直播后台
    关于在chrome中响应不出现在XHR里的远影
  • 原文地址:https://www.cnblogs.com/BruceKing/p/13398174.html
Copyright © 2011-2022 走看看