clwn.net
当前位置:首页 >> 获取泛型的类型 >>

获取泛型的类型

ParameterizedType parameterizedType = (ParameterizedType)this.getClass().getGenericSuperclass(); entityClass= (Class)(parameterizedType.getActualTypeArguments()[0]);

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

ParameterizedType pt =(ParameterizedType) this.getClass().getGenericSuperclass(); Class entityClass =(Class)pt.getActualTypeArguments()[0]; entityClass就是实际类型。

获得方法的代码如下,字段的类似 /******************************************************************************** * Project Name[online-courses] * File Name [day02.generic.GenericDemo5.java] * Creation Date [2016-11-23] * * Copy...

/** * 获取field的类型,如果是复合对象,获取的是泛型的类型 * * @param field * @return */private static Class getFieldClass(Field field) { Class fieldClazz = field.getType(); if (fieldClazz.isAssignableFrom(List.class)) { Type fc...

Java的泛型就是创建一个用类型作为参数的类。就象我们写类的方法一样,方法是这样的method(String str1,String str2 ),方法中参数str1、str2的值是可变的。而泛型也是一样的,定义泛型 一般用 T 表示. public List method(T t){ 方法体} 。它的...

c#中可以,但是java中貌似不行 java中需要实例化某个类的实例,需要知道类名称 Class.forName("xxx.xx.MyClass").newInstance()

T.getClass()或者T.class都是非法的,因为T是泛型变量。 由于一个类的类型是什么是在编译期处理的,故不能在运行时直接在Base里得到T的实际类型。 有一种变通的实现方式: import java.lang.reflect.Array; import java.lang.reflect.Parameteri...

package test; import java.util.ArrayList;import java.util.List; public class Test01 { public static void main(String[] args) { List strings = new ArrayList(); strings.add("123");//模拟返回一个泛型 System.out.println(strings.get...

T就是你的类型了,比如实例化就是: public class Teachera where T : class { public T t=new T(); public T ChangeScore(T t) { t.Score=100; return t; } } 也可以用typeof获取T的类型,还可以用is关键字判断是不是某一个类型。

网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com