Java_基础—泛型固定上/下边界

新建一个子类BaseStudent 继承其父类Student

package com.soar.bean;

public class BaseStudent extends Student {

    public BaseStudent(String name, int age) {
        super(name, age);
    }
    public BaseStudent() {
    }
}

新建一个Genric类

package com.saor.collections;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.TreeSet;

import com.soar.bean.BaseStudent;
import com.soar.bean.Student;

public class Demo2_Genric {
    /*
     * 泛型固定下边界
     * ? super E
     * 
     * 泛型固定上边界
     * ? extends E
     */
    public static void main(String[] args) {
        //demo_extends();
        TreeSet<Student> ts1 = new TreeSet<>(new CompareByAge());
        ts1.add(new Student("张三",33));
        ts1.add(new Student("李四",13));
        ts1.add(new Student("王五",23));
        ts1.add(new Student("赵六",43));

        TreeSet<BaseStudent> ts2 = new TreeSet<>(new CompareByAge());
        ts2.add(new BaseStudent("张三",33));
        ts2.add(new BaseStudent("李四",13));
        ts2.add(new BaseStudent("王五",23));
        ts2.add(new BaseStudent("赵六",43));
        //使用了父类的比较器
        System.out.println(ts2);
    }

    private static void demo_extends() {
        //父类 →固定了上边界E (Student)
        ArrayList<Student> list1 = new ArrayList<>();
        list1.add(new Student("张三",23));
        list1.add(new Student("李四",24));
        //子类→将上边界的E的子类(BaseStudent)添加到父类(Student)中,?代表的是E的子类
        ArrayList<BaseStudent> list2 = new ArrayList<>();
        list2.add(new BaseStudent("王五",25));
        list2.add(new BaseStudent("赵六",26));

        list1.addAll(list2);
    }

}

class CompareByAge implements Comparator<Student>{
    @Override
    public int compare(Student s1, Student s2) {
        int num = s1.getAge() - s2.getAge();
        return num ==0 ? s1.getName().compareTo(s2.getName()) : num;
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值