java反射 getMethod_JAVA 反射 getMethod() 和 invoke() 具体应用[通俗易懂]

java反射 getMethod_JAVA 反射 getMethod() 和 invoke() 具体应用[通俗易懂]最近有一个有很多输入框的JSP页面,在页面上inputname都是有规律的命名,在提交到后台时,通过JAVA反射机制可以减少不少代码量,特此记录一下实现!JSP页面大概如下:全程陪诊后续价格:V2普通会员元V2银牌会员元V2金牌会员元V2钻石会员元V3普通会员元V3直通会员元V3专护会员元V3专家会员元全程陪检后续价格:V2普通会员元V2银牌会员元V2金牌会员元V2钻石…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

最近有一个有很多输入框的JSP页面,在页面上 input name 都是有规律的命名,在提交到后台时,通过JAVA反射机制可以减少不少代码量,特此记录一下实现!

JSP页面大概如下:

全程陪诊后续价格:

  • V2普通会员 元
  • V2银牌会员 元
  • V2金牌会员 元
  • V2钻石会员 元
  • V3普通会员 元
  • V3直通会员 元
  • V3专护会员 元
  • V3专家会员 元
全程陪检后续价格:

  • V2普通会员 元
  • V2银牌会员 元
  • V2金牌会员 元
  • V2钻石会员 元
  • V3普通会员 元
  • V3直通会员 元
  • V3专护会员 元
  • V3专家会员 元

在后端定义好接收参数的Model,通过框架可以自动封装参数进去,开始处理:// 用于反射获取各项值 HospitalFormModel 接收参数的Model

Class clazz = hospitalExtendForm.getClass();

// 就医服务价格添加 V2

for (int i = 1; i <= 4; i++) {

healServiceFeeV2 = HealServiceFee.dao.findPrice(healServiceStr, i, hospital.getId());

// 。。。。。。

// 反射获取值

Method method = clazz.getMethod(“getV2_” + healServiceStr + “_level” + i);

Object object = method.invoke(hospitalExtendForm);

healServiceFeeV2.setFee1(object == null ? null : String.valueOf(object));

// 扩展项 fee2

if (Objects.equals(healServiceStr, “dyyjc”) || Objects.equals(healServiceStr, “gjpz”) || Objects.equals(healServiceStr, “qcpj”)) {

Method methods = clazz.getMethod(“getV2_” + healServiceStr + “_fee2_level” + i);

Object objects = methods.invoke(hospitalExtendForm);

healServiceFeeV2.setFee2(objects == null ? null : String.valueOf(objects));

}

// 。。。。。。

}

// 同理获取 V3各项值

getMethod:第一个参数是: 方法名,第二个参数是可变参数是:参数类型(此处是获取get,因此不需要第二个参数)

invoke:第一个参数是:具体执行该方法的对象,第二个参数是可变参数是:执行该方法的具体参数(此处也不需要第二个参数)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190438.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 多线程CreateThread函数的用法

    多线程CreateThread函数的用法CreateThread当使用CreateProcess调用时,系统将创建一个进程和一个主线程。CreateThread将在主线程的基础上创建一个新线程,大致做如下步骤:1在内核对象中分配一个线程标

    2022年7月4日
    31
  • kettle工具使用一二三[通俗易懂]

    kettle工具使用一二三[通俗易懂]1:关于ID生成器。如果一个转化流程里的两个分支分别使用了GenerateID组件,请注意“计数器名称”,这个很重要。1)如果改名字不同,则最总汇总结果中的id是会分别生成的,也就是说会出现重复的id。2)如果名字相同,最终结果中id是不会重复的。2:关于序列生成器首先抱歉,上面所说的“GenerateID“组件,其实指的就是序列生成器。kettle5.3中包含两个序列生成器组件,一个…

    2022年10月12日
    0
  • 御用导航提示提醒页面_PowerBI 个性化定制你的报告导航

    御用导航提示提醒页面_PowerBI 个性化定制你的报告导航“页导航”是PowerBI在2020年5月的更新中一个非常关键的功能。我也写过一篇文章,如何在书签和页导航中进行选择:PowerBI中的书签和导航页,如何选择呢?而通过页导航的自定义参数链接可以实现给最终用户提供个性化定制的页面。那么问题来了,为什么要给最终用户提供个性化的页面呢?每一个终端用户,对于所想看到的页面是不同的,或者希望看到的报告风格是有差异的。你作为报告的设计者/Power…

    2022年5月30日
    319
  • 关于phpcmsv9更新缓存出现链接被重置的问题

    关于phpcmsv9更新缓存出现链接被重置的问题

    2022年2月4日
    49
  • 分布式CAP原理:一致性、可用性、分区容错

    分布式CAP原理:一致性、可用性、分区容错CAP概念单机系统由于所有的处理都在单机完成的,所以不存在数据一致性问题,但是如果系统崩溃了,就导致服务不可用。分布式系统可以实现服务的高可用,现有的大型网站几乎都是分布式的,特别是微服务的出现,使得分布式系统正变得越来越重要。分布式系统最大的难点,就是各个节点的状态如何同步。CAP原理给分布式系统的实现带来了指导思路,它也是理解分布式系统的重要理论。CAP由以下三个指标组成:C(Consistency):一致性A(Availability):可用性P(P…

    2022年7月25日
    4
  • Nginx 负载均衡配置和策略「建议收藏」

    Nginx 负载均衡配置和策略

    2022年1月24日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号