zoukankan      html  css  js  c++  java
  • 泛型的上限和下限的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;
        }
        
    }
  • 相关阅读:
    linux(十一)之初始化文件
    linux(十)配置ssh免密登录实现
    linux(九)之网络基础
    linux(八)linux系统中查找文件二
    oracle 重建分区索引
    java.io.IOException: java.sql.SQLException: ORA-01502: index 'BTO.PK_xxxxx' or partition of such index is in unusable state
    oracle count 大表
    shell for if
    oracle 导出表
    linux date
  • 原文地址:https://www.cnblogs.com/hongcong/p/5878344.html
Copyright © 2011-2022 走看看