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]);
            }
    
        }
  • 相关阅读:
    借Adobe XD之力,自动生成Flutter代码
    阿里云移动研发平台体验报告
    一年的时间,我出版了一本实体书
    论一个前端开发者的自我修养
    es6 中模块的使用总结
    vue前端UI框架收集
    页面布局进化史
    JSON是一种轻量级数据交换格式
    web图片裁切插件 cropper.js 详细介绍
    css3中的@font-face你真的了解吗
  • 原文地址:https://www.cnblogs.com/frankyou/p/13320765.html
Copyright © 2011-2022 走看看