• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

反射时获取 method 里面 List<Object> 里面的具体类型 (正则获取括号内的内容)

武飞扬头像
一直打铁
帮助1

一、 介绍

我们正常反射 获取方法Method 里面的 参数类型, 但是 如果参数是 List , 只能拿到List, 获取不到对应的Object 是什么类型,这里是 泛型语法糖 ,思路如下:

class --->> .getMethod() --->> Method.getParameters() --->> parameter.getDeclaringExecutable().toGenericString(); --->> 获取 到接口的的字符串

//这里是获取全部 路径 ,这是我测试接口
 public abstract void com.test.common.dao.insertEntity(java.util.List<com.test.common.entity.TestEntity>)

--->>> 通过正则 过滤出括号里面的

java.util.List<com.test.common.entity.TestEntity> 

--->>com.test.common.entity.TestEntity    --->> class.forName()    --->> Clazz.newInstance()

 
 
 

接下来通过正则 获取 括号里面的 参数,具体方法就不放了.

给个获取的正则demo:

    public static void main(String[] args) {
        String str ="public abstract void com.test.common.dao.insertEntity(java.util.List<com.test.common.entity.TestEntity>)";
        Matcher matcher = Pattern.compile("(?<=\\()(\\S )(?=\\))").matcher(str);
        if (matcher.find()) {
            String value = matcher.group();
            System.out.println(value);
        }
    }

输出: java.util.List<com.test.common.entity.TestEntity>
学新通

二、小结

记录一下,其实很简单,当时第一时刻没有拿到里面的具体类型.

支付宝 微信
学新通 学新通
如果有帮助记得打赏哦 特别需要您的打赏哦

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhhahfhj
系列文章
更多 icon
同类精品
更多 icon
继续加载