首页 > 代码库 > 泛型的上限和下限的Demo
泛型的上限和下限的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; } }
泛型的上限和下限的Demo
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。