博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5、泛型
阅读量:4881 次
发布时间:2019-06-11

本文共 1024 字,大约阅读时间需要 3 分钟。

jdk1.5
好处:
     1、将运行时的异常提前至编译时
     2、避免了无谓的强转
 
常见应用:
ArrayList
list = new ArrayList
(); // 里面存储的是String类型的数据类型

注意:泛型无多态,左右两边必须一致(推荐),或者只写一边(为向上兼容)

自定义泛型:一个数据类型的占位符或者一个数据类型的变量

 

1、泛型方法 :

参数化类型,将类型由原来的具体类型参数化,类型也定义为参数形式(类型形参),在使用时传入具体的类型(类型形参)

修饰符   
返回值类型 函数名(T t){......}; // public
void get(T t){}

 

在泛型中不能使用基本类型,要使用则用其对应的包装类

方法泛型注意:
     1、方法上自定义泛型,这个自定义泛型的具体数据类型是在调用该方法时传入实参时确定的
     2、用T或者E表示

 

2、泛型类

class  类名
{}
注意:
     1、类自定义泛型的具体数据类型是在使用该类的时候创建对象的时候确定的
     2、使用该类是没有指定泛型的具体类型,默认为Object类型
     3、在类上自定义泛型不能作用于静态方法,如果静态方法需要使用自定义类型,需要自己在方法上声明使用(原因1)
 

3、泛型接口

interface  接口名
{}
注意:
     1、接口上自定义的泛型的具体数据类型是在实现一个接口时指定的
     2、实现接口时没有指定具体的数据类型,默认是Object
 
要想延长接口自定义泛型的具体数据类型到创建实现接口实现类对象时才指定
public class Demo
implements Dao
{}

 

4、泛型的上下限

public static void print(Collection
c) // ? super Integer 只能存储Integer或者Integer的父类元素,泛型的下限;extends是上限

 

转载于:https://www.cnblogs.com/1989guojie/p/6107686.html

你可能感兴趣的文章
2015 Multi-University Training Contest 6 hdu 5357 Easy Sequence
查看>>
HDU 4856 Tunnels
查看>>
常用的页面加载慢的解决方案
查看>>
Excel催化剂开源第11波-动态数组函数技术开源及要点讲述
查看>>
关于Spring配置文件提示的插件下载
查看>>
软件工程师就业前景
查看>>
asp.net成员管理系统membership详解教程(一)
查看>>
情态动词
查看>>
关于linux的一些基础知识
查看>>
架构漫谈阅读感悟一
查看>>
Android系列之网络(二)----HTTP请求头与响应头
查看>>
数据结构之表(1)顺序表的实现
查看>>
5. git 过滤,让某文件夹里无法提交新添加的文件
查看>>
使用python脚本的3D引擎Panda3d
查看>>
「成长指南」大佬是怎样炼成的
查看>>
CentOS VMware 下SSH配置方法详解
查看>>
【DNN 系列】 添加模块后不显示
查看>>
Java Spring MVC 错误 及 常见问题 总结
查看>>
记一个数据库游标的实例
查看>>
netcore2.0 ORM框架中如何配置自定义的主外键加载
查看>>