day15泛型

<06 集合框架(泛型概述)>

集合中只能添加对象,是不能添加基本数据类型的。但1.5版本之后可以。因为 基本数据类型有个自动装箱/拆箱动作。

<07 集合框架(泛型使用)>

泛型避免了强转

(泛型在比较器中的应用。代码变简洁,且安全性增强)

<08 集合框架(泛型类)>

在自己定义的类中使用泛型,来完成自己的程序设计。

由对方来指定要操作什么类型的对象

在编译期 报错,而不是运行时才报错。 

泛型的出现,避免了强转。并且将错误 转移到了编译时期,而不是运行时期。

 

* 什么时候定义泛型类?
* 当类中要操作的引用数据类型不确定的时候,
* 早期定义Object来完成扩展,
* 现在定义泛型来完成扩展
* (注意只能是引用数据类型。基本类型 你重新定义不了)

 

 

 

<09 集合框架(泛型方法)>

泛型除了可以定义在类上,泛型还可以定义在方法上。

 

* 泛型类定义的泛型,在整个类中有效。如果被方法使用,
 * 那么泛型类的对象明确要操作的具体类型后,所有要操作的类型就已经固定了。
 *
 * 为了让不同方法可以操作不同类型,而且类型还不确定,
 * 那么可以将泛型定义在方法上。
 *
 */

class Demo1{
    public <T> void show(T t){
        System.out.println("show: " + t);
    }
    public <Q> void print(Q q){
        System.out.println("print: " + q);
    }
}
class Demo<T>{
    public void show(T t){
        System.out.println("show: "+t);
    }
    public void print(T t){
        System.out.println("print: " + t);
    }

}


public class GenericDemo4 {
    public static void main(String[] args){
        Demo<String> d = new Demo<String>();
        d.show("haha");
        d.print("hehe");

        Demo<Integer> i = new Demo<Integer>();
        i.show(1);

        Demo1 dd = new Demo1();
        //类型定义在方法上,则往里面传什么类型,它就定义什么类型
        dd.show("haha");
        dd.show(1);
        dd.print('a');
    }
}

 

 

 

<10 集合框架(静态方法泛型)>

 

* 记住,特殊之处:
* 静态方法 不可以访问类上定义的泛型。
* 如果静态方法操作的引用数据类型不确定,可以将泛型定义在方法上。

 

 

 

泛型 定义在方法上,类型 放到 返回值类型的前面,修饰符的后面:

public static <W> void method(W t)

 

(静态的,先加载,后面的才用得上对象)

rem:如果是静态方法,泛型一定定义在接口上。

<11 集合框架(泛型接口)>

<12 集合框架(泛型限定)

用泛型好处:具有扩展性。不好处:不能使用类型的特有方法

<13 集合框架(泛型限定2)>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值