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]);
            }
    
        }
  • 相关阅读:
    项目部署
    nginx
    IDEA中Lombok插件的安装与使用
    Git常用命令总结
    CentOS 7 NAT模式上网配置
    一名3年工作经验的java程序员应该具备的技能
    maven 项目加载本地JAR
    linux压缩(解压缩)命令详解
    jdk7与jdk8环境共存与切换
    linux服务器卸载本机默认安装的jdk
  • 原文地址:https://www.cnblogs.com/frankyou/p/13320765.html
Copyright © 2011-2022 走看看