码迷,mamicode.com
首页 > 其他好文 > 详细

43_通过反射获得泛型的实际类型参数

时间:2015-02-04 12:22:33      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:

框架经常干的事,

根据方法签名得知数据的类型,然后转换成相应的对象,填充进去。

 

package com.itcast.day2;

import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Vector;

import com.itcast.day1.ReflectPoint;

public class GenericExc {

    public static void main(String[] args) throws Exception{
        Method applyMethod=GenericExc.class.getMethod("applyVector", Vector.class);
        //Type 是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。
        Type[] types=applyMethod.getGenericParameterTypes();
        
        ParameterizedType pType= (ParameterizedType)types[0];//ParameterizedType是Type的子接口
        System.out.println(pType.getRawType());//得到原始类型
        System.out.println(pType.getActualTypeArguments()[0]);//得到实际类型
                
        //applyVector(Vector v)时, java.lang.Class 
        //applyVector(Vector<Date> v) sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl
        System.out.println(types[0].getClass());
        
        //jdk1.8以后有了简便的方法直接得到了 java.util.Vector<java.util.Date>
        System.out.println(types[0].getTypeName());
    }

    public  void applyVector(Vector<Date> v){
        
    }

}

43_通过反射获得泛型的实际类型参数

标签:

原文地址:http://www.cnblogs.com/qq-757617012/p/4271840.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!