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)
上一篇 2026年2月20日 下午8:43
下一篇 2026年2月20日 下午9:22


相关推荐

  • vsftp 用户_linux虚拟用户

    vsftp 用户_linux虚拟用户Vsftp与PAM虚拟用户使用yum安装vsftpyum install vsftpd pam pam-* db4 db4-* 创建一个保存用户及密码的文件cd /etc/vsftpd/ touch virtual_login 添加用户(一行用户一行是密码)vim  virtual_login dongnan nandong

    2026年3月8日
    5
  • Android模拟器开发_安卓模拟器开发

    Android模拟器开发_安卓模拟器开发更多例子:https://code.google.com/p/playn/wiki/DemoLinksgameplay–http://gameplay3d.org/index.php旨在帮助独立游戏开发的生态系统,开源的跨平台的3D引擎支持BlackBerry10、PlayBook、AppleiOS5+、AndroidNDK2.3+、MicrosoftWindows7、AppleMacOSX、Linux完整着色系统,基于节点的场景图形系统,粒子系统,Fullfeatured

    2026年1月25日
    9
  • 基于libcurl的开发

    基于libcurl的开发0 ReferenceB 站阅读的小哥的视频知乎的一片好文 libcurl 使用方法简介 1 简介 libcurl 是一个跨平台的开源网络协议库 支持 http https rtsp 等多种协议 libcurl 同样支持 HTTPS 证书授权 HTTPPOST HTTPPUT FTP 上传 HTTP 基本表单上传 代理 cookies 和用户认证 官网地址 http curl haxx se libcurl 主要提供了两种发送 HTTP 请求的方式 分别是 easyinterfac 方式

    2025年12月13日
    9
  • Docker(一):Docker的安装与常用命令

    Docker(一):Docker的安装与常用命令

    2021年9月26日
    52
  • 三极管开关电路_利用三极管设计开关电路[通俗易懂]

    三极管开关电路_利用三极管设计开关电路[通俗易懂]很多工程师在上学时被老师讲的三极管的各种电路接法,和小信号模型分析给绕晕了。而且大学的课本大多数都是在讲三极管的放大特性。其实在实际的电路设计中,三极管的很多应用场景只是利用三级管的开关特性,我们往往是运用三极管来实现开关电路,做一些电平转换的功能。这是由于两个原因造成的:由于数字电路的快速发展,模拟电路设计的比重越来越小;另外运算放大器,越来越便宜,各项特性也比分立器件实现的放大电路相…

    2026年2月3日
    6
  • PHP:2019年你面试会遇到的题目及解答(汇总)

    PHP:2019年你面试会遇到的题目及解答(汇总)2019 年 PHP 面试常用题汇总及答案如下 1 如何防止 form 表单重复提交 2 Cookie 被禁用了 session 还可以使用吗 3 你了解的或者用过的版本控制工具有哪些 简单说明一下 CVS SVN vss git4 单例模式的优点 如何实现 5 单引号和双引号的区别是什么 1 双引号可以解析变量 单引号不能解析变量 2 双引号和单引号可以互相嵌套 3 双引号当中的变量可以

    2026年3月27日
    1

发表回复

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

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