泛型总结一
来源:互联网 发布:詹姆斯总得分最新数据 编辑:程序博客网 时间:2024/05/03 16:53
- 概念
- 泛型方法
- 泛型类
- 泛型接口
- 泛型的上下限
概念
泛型是jdk1.5使用的新特性。
泛型的好处:
- 将运行时的异常提前至了编译时。
- 避免了无谓的强制类型转换 。
泛型在集合中的常见应用:
ArrayList list = new ArrayList();
注意: 泛型没有多态的概念,左右两边的数据 类型必须 要一致,或者只是写一边的泛型类型。
推荐使用: 两边都写泛型。
泛型方法
自定义泛型就是一个数据类型的占位符或者是一个数据类型的变量。
方法上自定义泛型:
修饰符 <声明自定义的泛型>返回值类型 函数名(使用自定义泛型 ...){}
public static <T>T getData(T o){ return o;}
方法泛型注意的事项:
- 在方法上自定义泛型,这个自定义泛型的具体数据类型是在调用该 方法的时候传入实参时确定具体的数据类型的。
- 自定义泛型只要符合标识符 的命名规则即可, 但是自定义泛型我们一般都习惯使用一个大写字母表示。 T Type E Element
泛型类
泛型类的定义格式:
class 类名<声明自定义泛型>{}
class MyArrays<T>{}
泛型类要注意的事项:
- 在类上自定义泛型的具体数据类型是在使用该类的时候创建对象时候确定的。
- 如果一个类在类上已经声明了自定义泛型,如果使用该类创建对象 的时候没有指定 泛型的具体数据类型,那么默认为Object类型
- 在类上自定义泛型不能作用于静态的方法,如果静态的方法需要使用自定义泛型,那么需要在方法上自己声明使用。
泛型接口
泛型接口的定义格式:
interface 接口名<声明自定义泛型>{}
泛型接口要注意的事项:
- 接口上自定义的泛型的具体数据类型是在实现一个接口的时候指定 的。
- 在接口上自定义的泛型如果在实现接口的时候没有指定具体的数据类型,那么默认为Object类型。
泛型的上下限
泛型中通配符: ?
? extends Number :泛型的上限 只能存储Number或者是Number类型的子类数据。
? super Integer:泛型的下限 只能存储Integer或者是Integer父类元素。
public class Demo5 { public static void main(String[] args) { ArrayList<Integer> list1 = new ArrayList<Integer>(); ArrayList<Number> list2 = new ArrayList<Number>(); HashSet<String> set = new HashSet<String>(); getData(list2); } //泛型的上限 public static void getData(Collection<? extends Number> c){ } //泛型的下限 public static void print(Collection<? super Integer> c){ }}
0 0
- 泛型总结一
- java泛型总结(一)
- List泛型集合总结(一)
- C++泛型编程总结(一)
- C# 泛型学习总结(一)
- 黑马程序员 java泛型学习总结(一)
- C++ STL泛型总结(一)——vector
- Java编程思想 -- 泛型概括总结(一)
- 总结一
- 总结一
- 一总结
- 总结一
- Android基础总结一:Intent总结一
- 黑马程序员_泛型总结(一个苹果是水果,一箱苹果不是水果)
- Java 泛型总结(一):基本用法与类型擦除
- ZYBB项目总结(一)
- 总结一HA
- Liferay难点总结(一)
- Docker 入门教程(五)
- 【转】Python Anaconda简介及安装
- ios性能测试Instruments
- 【Android】当xutils3遇到umeng统计
- 写简历不可不知的事
- 泛型总结一
- LibSVM3.21使用笔记----for python3.4 配置
- QYPT SAMPLE WEBSITE
- Live555接收h264使用ffmpeg解码为YUV420
- 动物这样叫
- MongoDB的下载安装 Linux and Windows
- Google 的开源技术protobuf 简介与例子
- 使用AFNetworking框架检测网络状态
- nordic 51822 app_timer.c(62): error: #39: division by zero