`
dcriori
  • 浏览: 97106 次
社区版块
存档分类
最新评论

ParameterizedType: getActualTypeArguments()

阅读更多
java 代码
 
  1. import java.lang.reflect.ParameterizedType;  
  2. import java.lang.reflect.Type;  
  3. import java.util.ArrayList;  
  4.   
  5. public class MainClass {  
  6.   public static void main(String args[]) throws Exception {  
  7.   
  8.     Type type = StringList.class.getGenericSuperclass();  
  9.     System.out.println(type); // java.util.ArrayList<java.lang.String>  
  10.     ParameterizedType pt = (ParameterizedType) type;  
  11.     System.out.println(pt.getActualTypeArguments()[0]);  
  12.   
  13.   }  
  14. }  
  15.   
  16. class StringList extends ArrayList<String> {  
  17. }  
分享到:
评论

相关推荐

    谈谈Java类型中ParameterizedType,GenericArrayType,TypeVariabl,WildcardType

    `ParameterizedType`提供了一个方法`getActualTypeArguments()`,用于获取参数化类型的实际类型参数。例如,在`methodIV`方法的参数列表中,`ArrayList[]`的`getActualTypeArguments()`会返回`ArrayList&lt;String&gt;`,...

    java 反射机制

    for (Type actualTypeArgument : parameterizedType.getActualTypeArguments()) { System.out.println("Generic Type: " + actualTypeArgument.getTypeName()); } } ``` 此外,反射还可以用来创建对象、调用构造...

    反射与泛型

    Type[] actualTypeArguments = parameterizedType.getActualTypeArguments(); // actualTypeArguments[0] 就是 T 的实际类型 } ``` 在理解了反射和泛型的基础后,我们来看如何结合两者来创建对象。假设我们已经...

    java泛型深入.pdf

    Type[] actualTypeArguments = parameterizedType.getActualTypeArguments(); Class&lt;T&gt; entityClass = (Class) actualTypeArguments[0]; } ``` 在了解Java泛型的时候,需要熟悉它们的定义和使用,也要理解编译时...

    反射处理java泛型_.docx

    Class&lt;?&gt; genericClass = (Class) parameterizedType.getActualTypeArguments()[0]; ``` 这两种方法都可以有效地获取到泛型子类传入的类型信息,但第一种方法更为直接,第二种方法则依赖于反射操作。 安全方面,...

    Java让泛型实例化的方法

    Type[] typeArray = parameterizedType.getActualTypeArguments(); if (typeArray != null && typeArray.length &gt; 0) { clazz = (Class) typeArray[0]; } } ``` 在上面的代码中,我们使用 `getClass()....

    java反射

    Type[] params = ((ParameterizedType) genType).getActualTypeArguments(); if (index &gt;= params.length || index ) { throw new RuntimeException("Index " + (index &lt; 0 ? "less than 0" : "out of bounds"));...

    HibernateCommonDAO

    private Class&lt;T&gt; entityClass; public HibernateCommonDAO() { Type type = getClass().... Type[] types = ((ParameterizedType) type).getActualTypeArguments(); entityClass = (Class)types[0]; } }

    654.652.JAVA基础教程_反射-获取运行时类的父类及父类的泛型(654).rar

    ParameterizedType paramType = (ParameterizedType) genericType; Type[] actualTypeArgs = paramType.getActualTypeArguments(); for (Type type : actualTypeArgs) { // 处理每个实际类型参数 } } ``` 在这...

    basedao的封装

    //获得当前类型的带有泛型类型的父类... ParameterizedType ptClass = (ParameterizedType) this.getClass().getGenericSuperclass(); //获得运行期的泛型类型 clazz = (Class) ptClass.getActualTypeArguments()[0];

    Spring 中优雅的获取泛型信息的方法

    Type[] params = ((ParameterizedType) genType).getActualTypeArguments(); if ((index &gt;= params.length) || (index )) { logger.warn("Index: " + index + ", Size of " + clazz.getSimpleName() + "'s ...

    Java使用反射来获取泛型信息示例

    接着,我们将Type对象强制类型转换为ParameterizedType对象,然后使用getRawType()和getActualTypeArguments()方法来获取泛型参数的信息。 在实例代码中,我们定义了一个GenericTest类,其中包含了一个Map, Integer...

    ReflectTest

    我们可以从`Method`对象的`getGenericReturnType()`得到`Type`对象,再通过`instanceof ParameterizedType`判断是否为泛型类型,然后通过`((ParameterizedType) type).getActualTypeArguments()`获取实际的类型参数...

    myReflect源代码

    ParameterizedType paramType = (ParameterizedType) genericType; Type[] actualTypes = paramType.getActualTypeArguments(); // 处理实际类型参数 } ``` myReflect项目通常还会提供一些实用工具类,封装了...

    Java 获取泛型的类型实例详解

    return (Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; } } public class UserDao extends JdbcDaoSupport&lt;User&gt; { } ``` 在上面的代码中,我们定义了一个抽象...

    博客《反射(2):泛型相关周边信息获取》对应源码

    `ParameterizedType` 接口表示参数化的类型,它有一个重要的方法 `getActualTypeArguments()`,用于获取实际的类型参数。这些类型参数可以是具体的类、接口,或者是其他泛型类型的实例。如果类型参数是通配符(如 `?...

    Java泛型的用法及T.class的获取过程解析

    entityClass =(Class) ((ParameterizedType) getClass() .getGenericSuperclass()).getActualTypeArguments()[0]; } public T get(Serializable id) { T o = (T) getHibernateTemplate().get(entityClass, id);...

    泛型的反射分析代码可参考复杂未看懂

    例如,如果你有一个泛型方法`public &lt;T&gt; void printList(List&lt;T&gt; list)`,你可以通过`method.getGenericReturnType()`获取到`ParameterizedType`对象,然后调用`getActualTypeArguments()`来获取泛型参数的实际类型...

    java高级应用简笔

    - **`ParameterizedType`**:表示带泛型的参数类型,例如`List&lt;String&gt;`。 - **`GenericArrayType`**:表示泛型数组类型。 - **`WildcardType`**:表示通配符类型。 **3.7 Method中的类型操作** - **`...

Global site tag (gtag.js) - Google Analytics