zoukankan      html  css  js  c++  java
  • ParameterizedType

       private static class ParameterizedTypeTest<T extends Number> {
            private List<T> list = null;
    
            public static void main(String[] args) throws NoSuchFieldException {
                testTypeVariable();
            }
    
            private Map.Entry<String, Integer> map = null;
    
            private static void getGetActualTypeArguments() throws NoSuchFieldException {
                Field fieldMap = ParameterizedTypeTest.class.getDeclaredField("map");
                ParameterizedType typeMap = (ParameterizedType) fieldMap.getGenericType();
                System.out.println(typeMap.getActualTypeArguments()[0]);
                System.out.println(typeMap.getActualTypeArguments()[1]);
                System.out.println(typeMap.getRawType());
                System.out.println(typeMap.getOwnerType());
            }
    
            private List<String>[] t;
    
            private static void testGenericArrayType() throws NoSuchFieldException {
                Field fieldArray = ParameterizedTypeTest.class.getDeclaredField("t");
                GenericArrayType typeArray = (GenericArrayType) fieldArray.getGenericType();
                System.out.println(typeArray.getClass().getName());
                System.out.println(typeArray.getGenericComponentType());
            }
    
            private List<T> t1;
            private T t2;
    
            private static void testTypeVariable() throws NoSuchFieldException {
                Field field = ParameterizedTypeTest.class.getDeclaredField("t1");
                ParameterizedType type = (ParameterizedType) field.getGenericType();
                System.out.println(type.getActualTypeArguments()[0].getClass().getName());
    
                Field field2 = ParameterizedTypeTest.class.getDeclaredField("t2");
                TypeVariable type2 = (TypeVariable) field2.getGenericType();
                System.out.println(type2.getBounds()[0]);
            }
    
        }
  • 相关阅读:
    JavaSE-面向对象
    JavaSE-数组
    JavaSE-方法
    JavaSE-流程控制
    JavaSE-基础语法
    Java-初识Java
    PTH的几种食用姿势
    CVE-2020-1472 Zerologon
    OpenGL 术语
    使用IDEA创建SpringMVC项目
  • 原文地址:https://www.cnblogs.com/frankyou/p/13320765.html
Copyright © 2011-2022 走看看