• 泛型的上限和下限的Demo


    Main Class

    package Comparator.Bean;
    
    import java.math.BigDecimal;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Iterator;
    /**
     * ? extends E : 接收E或者是E的子类对象。上限
     * ? super E :接收E或者E的父类对象。下限
     * @author asus
     *
     */
    public class ComparatorMain {
        public static void main(String[] args) {
            System.out.println("----------extends---------------");
            List<People> peoples = new ArrayList<People>();
            peoples.add(new People("Tom",22));
            peoples.add(new People("Kitty",18));
            peoples.add(new People("Marry",20));
            printCollectionExtends(peoples);
            List<Worker> workers = new ArrayList<Worker>();
            workers.add(new Worker("Programmer", new BigDecimal(20000)));
            workers.add(new Worker("teacher", new BigDecimal(6000)));
            printCollectionExtends(workers);
            List<String> strings = new ArrayList<String>();
            strings.add("abc");
            strings.add("efg");
            strings.add("hij");;
            //printCollection(strings); 
            System.out.println("----------super---------------");
            printCollectionSuper(peoples);
            List<Student> students = new ArrayList<Student>();
            students.add(new Student(87, 96));
            students.add(new Student(100, 100));
            //printCollectionSuper(students);
            List<Human> humans = new ArrayList<Human>();
            humans.add(new Human("China", "1991-6-4"));
            humans.add(new Human("US", "2000-6-4"));
            printCollectionSuper(humans);
            //printCollectionExtends(humans);
        }
        
        public static void printCollectionExtends(Collection<? extends People> collection){
            Iterator<?> iterator = collection.iterator();
            while (iterator.hasNext()) {
                System.out.println(iterator.next().toString());
            }
        }
        
        public static void printCollectionSuper(Collection<? super People> collection){
            Iterator<?> iterator = collection.iterator();
            while (iterator.hasNext()) {
                System.out.println(iterator.next().toString());
            }
        }
    }

    People class

    package Comparator.Bean;
    
    public class People extends Human{
        private String name;
        private int age;
        private Student student;
        private Worker worker;
        
        public People() {
            super();
        }
        public People(String name, int age) {
            this.name = name;
            this.age = age;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public Student getStudent() {
            return student;
        }
        public void setStudent(Student student) {
            this.student = student;
        }
        public Worker getWorker() {
            return worker;
        }
        public void setWorker(Worker worker) {
            this.worker = worker;
        }
        
        public String toString(){
            return "name:"+name+";age:"+age;
        }
        
        
    }

    Human class

    package Comparator.Bean;
    
    public class Human {
        private String country;
        private String birthday;
        
        public Human(){}
        
        public Human(String country, String birthday) {
            this.country = country;
            this.birthday = birthday;
        }
        public String getCountry() {
            return country;
        }
        public void setCountry(String country) {
            this.country = country;
        }
        public String getBirthday() {
            return birthday;
        }
        public void setBirthday(String birthday) {
            this.birthday = birthday;
        }
        
        public String toString(){
            return "country:"+country+"birthday:"+birthday;
        }
    }

    Worker class

    package Comparator.Bean;
    
    import java.math.BigDecimal;
    
    public class Worker extends People{
        private String occupation;
        private BigDecimal salary;
        
        public Worker(String occupation, BigDecimal salary) {
            this.occupation = occupation;
            this.salary = salary;
        }
        public String getOccupation() {
            return occupation;
        }
        public void setOccupation(String occupation) {
            this.occupation = occupation;
        }
        public BigDecimal getSalary() {
            return salary;
        }
        public void setSalary(BigDecimal salary) {
            this.salary = salary;
        }
        public String toString(){
            return "Occupation:"+occupation+";salary:"+salary;
        }
    }

    Student class

    package Comparator.Bean;
    
    public class Student extends People{
        private int ChineseScores;
        private int MathScores;
        
        public Student(int chineseScores, int mathScores) {
            ChineseScores = chineseScores;
            MathScores = mathScores;
        }
        public int getChineseScores() {
            return ChineseScores;
        }
        public void setChineseScores(int chineseScores) {
            ChineseScores = chineseScores;
        }
        public int getMathScores() {
            return MathScores;
        }
        public void setMathScores(int mathScores) {
            MathScores = mathScores;
        }
        
    }
  • 相关阅读:
    oracle 查询表空间
    oracle 创建表空间
    webservice SOA
    WCF初识
    win10远程桌面身份验证错误,要求的函数不受支持
    一台主机两台显示器实现方式学习
    实现Http Server学习
    lucene索引和查询文件系统存储
    java 大文件输入方式FileOutputStream
    tar
  • 原文地址:https://www.cnblogs.com/hongcong/p/5878344.html
Copyright © 2020-2023  润新知