Java高级编程十:泛型的使用

第十章 泛型

1. 为什么要有泛型

  • 指定集合里边只能装某种数据类型
  • 编译时就会进行检查,防止类型错误
  • 异常类不能是泛型

2.泛型使用范例

public class DAO<T>{
    //表的共用操作
    //增删改查
}

public class StudentDAO extends DAO<Student>{
    //只能操作某一个表的DAO
}
  1. 泛型方法的使用
//当返回值类型不确定的时候可以使用泛型方法
public <E> e test(){}

3.泛型在继承方面的体现

3.1 泛型在继承方面的体现
  • 类 A 是类 B 的父类,E 和 E 二者不具备子父类关系,是两个并列的结构
  • 但是 A 是 B 的父类
List<Object> list = null;
List<String> li = null;
//不可以这么使用,此时的list和li不具有子父类关系
//list = li;
3.2 通配符的使用
  • 通配符 ?
@Test
public void test(){
    List<Object> list1 = null;
    List<String> list2 = null;
    List<?> list = null;
    
    list = list1;
    list = list2;
}
//List<?> 只可以添加null 其他都不可以添加
  • 有限制条件的通配符

? extends A:

​ G<? extends A> 可以作为 G 和 G 谷类的,其中B 是 A 的子类

? super A:

G<? extends A> 可以作为 G 和 G 谷类的,其中B 是 A 的父类

public class Person{}
class Student extends Person{}
class Test{
    @Test
    public void test(){
        List<? extends Person> list = null;
        List<? super Person> list2 = null;
        
        List<Student> s = null;
        List<Person> p = null;
        List<Object> o = null;
        
        list = s;
        list = p;
        //不可以
        //list = o;
        //不可以
        //list2 = s;
        list2 = p;
        list2 = o; 
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值