导航:首页 > 编程语言 > java泛型class获取

java泛型class获取

发布时间:2024-02-28 11:05:38

java 如何获取 泛型的 class

package com.leo.common;
public class Genericity<T> {
public static void main(String[] args) {
Genericity<String> test = new Genericity<>("test1");
System.out.println(test.getGenericityName());
Genericity<Double> test1 = new Genericity<>(new Double(123));
System.out.println(test1.getGenericityName());
}
private T data;
public Genericity(T data) {
this.data = data;
}
public T getData() {
return this.data;
}
public String getGenericityName() {
return data.getClass().getName();
}
}

Ⅱ java怎么获取带泛型的接口中的泛型类

反射可以实现.
//获得泛型集合
Type[] actualTypeArguments = class文件.getActualTypeArguments();
//实体类型
Class<T> domainClass = (Class<T>) actualTypeArguments[0];

Ⅲ java获取泛型class

很多朋友都想知道java怎么获取泛型class?下面侍袭就一起来了解一下吧~
获取泛型Class的方法
Class类的方法:
public Type getGenericSuperclass()
方法作用:

如果超类是参数化类型,则返回的 Type 对象必须准确反映源代码中所使用的实际类型参数。如果以前未曾创建表示超类的参数化类型,则创建这个类型。有关参数化老做兄类型创建过程的语义,请参阅 ParameterizedType 声明胡好。如果此 Class 表示 Object 类、接口、基本类型或 void,则返回 null。如果此对象表示一个数组类,则返回表示 Object 类的 Class 对象。

ParameterizedType类的方法:

Type[] getActualTypeArguments()

方法作用:返回表示此类型实际类型参数的 Type 对象的数组。

注意,在某些情况下,返回的数组为空。如果此类型表示嵌套在参数化类型中的非参数化类型,则会发生这种情况。

二、获取泛型Class对象

(解析Excel的类代码较多,这里定义几个简单的类记录)

定义获取泛型Class对象的工具类

GenericSuperclassUtil
import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; public class GenericSuperclassUtil { /* * 获取泛型类Class对象,不是泛型类则返回null */ public static Class  getActualTypeArgument(Class  clazz) { Class  entitiClass = null; Type genericSuperclass = clazz.getGenericSuperclass(); if (genericSuperclass instanceof ParameterizedType) { Type[] actualTypeArguments = ((ParameterizedType) genericSuperclass) .getActualTypeArguments(); if (actualTypeArguments != null && actualTypeArguments.length > 0) { entitiClass = (Class ) actualTypeArguments[0]; } } return entitiClass; } }
定义BaseService ,用来测试不使用父类时泛型Class的获取

BaseService
public class BaseService  { public Class  getEntityClass() { return GenericSuperclassUtil.getActualTypeArgument(this.getClass()); } }
测试BaseService.getEntityClass() @Testpublic void testBaseService() { System.out.println(new BaseService ().getEntityClass());// 控制台输出:null }

阅读全文

与java泛型class获取相关的资料

热点内容
王者荣耀今天怎么服务器更新了 浏览:151
单片机拼搭 浏览:151
程序员没必要穿冲锋衣 浏览:403
nova隐藏app怎么用 浏览:678
单片机程序中ret 浏览:223
爱奇艺上海算法团队 浏览:138
程序员颜值高的人 浏览:362
西数硬件加密和闪迪软件加密 浏览:716
声控足球解压黏土教程 浏览:639
linux下的嵌入式开发 浏览:173
电脑3d加速命令 浏览:105
加密手机号码是怎么回事 浏览:921
女程序员真实图片 浏览:696
pic单片机烧写 浏览:814
linuxping结果 浏览:196
单片机采集负电压 浏览:407
服务器收件什么意思 浏览:893
单片机发数组 浏览:884
魔方虚拟主机销售系统源码 浏览:709
rsa验签php源码 浏览:514