java中的泛型类型与Type接口
来源:互联网 发布:中国和英国的数据差别 编辑:程序博客网 时间:2024/04/28 03:25
假设我们定义了一个Room的类,表示一个房间
<span style="font-size:14px;">public class<T> Room(){}</span>由于我们建造好房间是,不知道房间以后的用途,他可能用来住人,也有可能用来放货物,因此需要用到泛型。但是我们可能想获取Room这个房间里面进来的的东西的类型,这时候就需要了解怎样获取泛型类型。
java中有一个Type接口
根据接口的定义,Type表示的是java里面所有的类型
查看Type的子接口我们可以看到
其中ParameterizedType这个接口代表的就是泛型这个类型
ParamterizedType接口中有三个方法:
Type[] getActualTypeArguments();
Type getRawType();
Type getOwnerType();
我们以Room类为例
getActualTypeArguments() 返回的是 <T> ,我们可以把泛型看做是类的形参,这个方法返回的就是<>括号内所有泛型类型
getRawType(); 返回的是 Room 这个类型,也就是类本身
getOwnerType(); 返回的是 Room<T> ,也就是类加上泛型参数
例子:
public class Room<T>{public Room(){ParameterizedType type= (ParameterizedType) this.getClass().getGenericSuperclass();Class entityClass=(Class) type.getActualTypeArguments()[0];String name=entityClass.toString();System.out.println("住进来的是:"+name);}}
其中
this.getClass().getGenericSuperclass();
返回的是 Room<Person>
然后我们利用
type.getActualTypeArguments()[0];就可以得到 Person.class
也就得到了传进来的泛型类型
0 0
- java中的泛型类型与Type接口
- Java中的接口定义与类型安全
- Java接口中的变量类型
- JAVA接口与类型安全
- Java泛型中的Type体系
- 数据库类型与JDBC TYPE 和Java类型对应关系
- 数据库类型与JDBC TYPE 和Java类型对应关系
- Java-泛型编程-类型擦除(Type Erasure)
- Java-泛型编程-类型擦除(Type Erasure)
- Type Java类型
- Java Type类型详解
- java中的接口与工厂
- Java语言的接口与类型安全
- Java语言的接口与类型安全
- Java语言的接口与类型安全
- Java语言的接口与类型
- Java语言的接口与类型安全
- java之类型转换与接口
- Mint17安装Remarkable编辑器
- STM32学习笔记之定时器的配置
- 引力与引力场
- SHGetSpecialFolderPath函数简介
- Scala学习(3)——集合(基本数据结构)
- java中的泛型类型与Type接口
- 解剖最近被发现的Mac OS木马 – OSX/Keydnap 20160712
- Web.py - ctx
- 赶紧投入es6的怀抱吧
- STM32学习笔记之外部中断实验
- linux下的free命令和top命令
- pthread_join和pthread_detach
- SCJD考得是你对java性能比较全面得理解
- android NDK:如何添加预编译静态库 libwebrtc_yuv.a为例