Java泛型使用方法和实例
时间:2018-08-20
本文章向大家介绍Java泛型使用方法和实例,需要的朋友可以参考一下
为什么要使用泛型?
在Java中增加泛型之前,泛型程序设计是用继承来实现的,例如ArrayList,只维护Object引用的数组:
1 public class ArrayList{ 2 private Object[] elementData; 3 4 public Object get(int i){...} 5 public void add(Object o){...} 6 }
在这里有一个问题,就是每次使用的时候,都必须进行一次强制类型转换
1 ArrayList list = new ArrayList(); 2 ... 3 String name = (String)list.get(0);
可以发现还没有错误检查,如果是其他类型会检测不到,当添加的时候,可以是任何类的对象
每次都转换一次很麻烦,用什么解决呢,类型参数!
ArrayList<String> list = new ArrayList<String>(); //在JAVASE 7以后的版本中,可以直接使用一下方法来声明了 ArrayList<String> list = new ArrayList<>();
简单泛型类
public class Pair<T>{ private T first; private T second; public Pair(){first = null; second = null;} public Pair(T first, T second){this.first = first; this.second = second} //get set ... }
现在,我们可以像现在这样定义了
Pair<String> test1 = new Pair<>(); Pair<Integer> test2 = new Pair<>();
泛型方法
public class test{ public static <T> T first(T...a){ //... } }
但是需要注意的是,下面这几种,并不是泛型方法,不要混淆
1 public class test<T>{ 2 private T t; 3 4 //这个不是,只是一个普通的成员的方法 5 public test(T t){ 6 this.t = t; 7 } 8 //这个也不是,只是泛型类是形参 9 public void add(test<T> object){...} 10 }
吃饭了,下次接着写
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Kubernetes K8S之Pod 生命周期与postStart、preStop事件
- Kubernetes K8S之资源控制器RC、RS、Deployment详解
- python教程 | 最标准的地图调用方式(国家测绘局提供数据)
- Kubernetes K8S之资源控制器StatefulSets详解
- Kubernetes K8S之资源控制器Daemonset详解
- Kubernetes K8S之资源控制器Job和CronJob详解
- Kubernetes K8S在IPVS代理模式下Service服务的ClusterIP类型访问失败处理
- Kubernetes K8S之Pod跨namespace名称空间访问Service服务
- Kubernetes K8S之Service服务详解与示例
- Kubernetes K8S之Ingress详解与示例
- Kubernetes K8S之存储Secret详解
- 在K8s上轻松部署Tungsten Fabric的两种方式
- Linux系统如何在离线环境或内网环境安装部署Docker服务和其他服务
- Servlet执行流程
- 最新的spring boot技术实现登录、列表、分页、上传等功能