泛型方法详解
来源:互联网 发布:python 匿名函数 编辑:程序博客网 时间:2024/06/08 06:19
泛型的类代表类的声明用到类型参数;泛型的方法代表方法的声明特征用到类型参数。
在方法的类型参数有几种不同的运用方式。
【1】使用定义在类声明中的类型参数
实例如下:
public class ArrayList<T> extends AbstractList<T>...{ public boolean add(T o){ //... } public T get(T o){ //... }}
add方法返回boolean类型,get方法返回类型与类一致,参数类型均与类一致。
【2】使用未定义在类声明的类型参数
即,泛型方法拥有不同于类的类型。
实例1如下:
public <T extends Animal> void takeThing(ArrayList<T> list){ //...}
实例2如下:
public <T> T get(T e){ //...}
实例一中,指明了T类型为Anamal子类,实例2未指明类型,即可以为任何一种类型!默认为Object。
实例3如下图所示:
调用泛型方法语法格式如下:
说明一下,定义泛型方法时,必须在返回值前边加一个<T>
,来声明这是一个泛型方法,持有一个泛型T,然后才可以用泛型T作为方法的返回值。
Class<T>的作用就是指明泛型的具体类型对应的CLASS类型,而Class<T>类型的变量c,可以用来创建泛型类的对象。上图示例中,参数Class<T>=User.class;
为什么要用变量c来创建对象呢?
既然是泛型方法,就代表着我们不知道具体的类型是什么,也不知道构造方法如何,因此没有办法去new一个对象,但可以利用变量c的newInstance方法去创建对象,也就是利用反射创建对象。
为什么要使用泛型方法呢?
因为泛型类要在实例化的时候就指明类型,如果想换一种类型,不得不重新new一次,可能不够灵活;而泛型方法可以在调用的时候指明类型,更加灵活。
PS:泛型接口和泛型抽象类同样不可以实例化。
阅读全文
0 0
- 泛型方法详解
- Java泛型二:泛型类 泛型接口 泛型方法详解
- 方法详解
- java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
- java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
- java 泛型详解-绝对是对泛型方法讲解最详细的
- java 泛型详解-绝对是对泛型方法讲解
- java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
- java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
- java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
- java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一
- Recordset对象方法详解
- OpenSchema 方法详解
- OpenSolaris安装方法详解
- OpenSchema 方法详解
- JAVA Calendar方法详解
- window.prompt()方法详解
- Python 字符串方法详解
- Windows/linux powershell 安装install
- 3555: [Ctsc2014]企鹅QQ
- SpringMVC之json数据交互,RestFul风格与拦截器实现
- 配置一个好用的ubuntu16.04
- 一句话说清分布式锁,进程锁,线程锁
- 泛型方法详解
- 线性表的顺序存储结构的C++类实现
- [LeetCode]63. Unique Paths II
- Gallery
- 15章 进程间通信之消息传递(管道、FIFO、消息队列)
- hdu1029 Ignatius and the Princess IV——多数元素
- 新装的Ubuntu系统可能要做的事(备忘)
- 当eclipse卡死的时候关闭重启eclipse,运行TOMCAT时,提示8080端口被占用的解决方法
- 2. Add Two Numbers