zoukankan      html  css  js  c++  java
  • 反射获取泛型

    package com.sinosoft;

    import com.sinosoft.lis.bq.PEdorAppBL;

    import java.lang.reflect.Method;
    import java.lang.reflect.ParameterizedType;
    import java.lang.reflect.Type;
    import java.util.Map;

    //使用反射获取泛型信息
    public class Test {

    public String test01(Map<String, PEdorAppBL> map,Double dou){
    return "yyy";

    }
    public Map<String, PEdorAppBL> test02(){
    return null;

    }

    public static void main(String[] args) throws NoSuchMethodException {
    System.out.println("方法1");
    Method method = Test.class.getMethod("test01", Map.class, Double.class);
    Type[] genericParameterTypes = method.getGenericParameterTypes();
    for (Type genericParameterType:genericParameterTypes) {
    System.out.println("=========="+genericParameterType);
    if(genericParameterType instanceof ParameterizedType){
    Type[] actualTypeArguments = ((ParameterizedType) genericParameterType).getActualTypeArguments();
    for(Type actualTypeArgument:actualTypeArguments){
    System.out.println(actualTypeArgument);
    }

    }
    }
    System.out.println("方法2");
    Method method2 = Test.class.getMethod("test02", null);
    Type genericReturnType = method2.getGenericReturnType();
    if(genericReturnType instanceof ParameterizedType){
    Type[] actualTypeArguments = ((ParameterizedType) genericReturnType).getActualTypeArguments();
    for(Type actualTypeArgument:actualTypeArguments){
    System.out.println(actualTypeArgument);
    }

    }
    }
    }



    运行结果:

    方法1
    ==========java.util.Map<java.lang.String, com.sinosoft.lis.bq.PEdorAppBL>
    class java.lang.String
    class com.sinosoft.lis.bq.PEdorAppBL
    ==========class java.lang.Double
    方法2
    class java.lang.String
    class com.sinosoft.lis.bq.PEdorAppBL

    具体代码解释,可以参考这个网址:https://blog.csdn.net/weixin_39452731/article/details/82916840

     
  • 相关阅读:
    Ajax函数
    javascript 重定向和打开新窗口(ZZ)
    asp.net 学习
    dojo杂谈
    Deciding between COALESCE and ISNULL in SQL Server
    从 Twitter 运维技术经验可以学到什么
    重新安装ASP.NET命令
    SQL Server 2008中新增的变更数据捕获(CDC)和更改跟踪
    SQL Server 2005/2008/2012中应用分布式分区视图
    数据库运维原则
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/13702945.html
Copyright © 2011-2022 走看看