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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java的二维数组讲解_javalambda表达式语法

    java的二维数组讲解_javalambda表达式语法1、二维数组概述1、二维数组其实就是一个特殊的一维数组,一维数组中每个元素就是一个一维数组2、三维数组又是一个特殊的二维数组2、二维数组的定义int[][]a=newint[10][10];String[][]b=newString[10][10];3、初始化二维数组//静态初始化int[][]a={{1,2,3,4},{4,5,6,7},{8,9,10,11}};//动态初始化

    2025年7月25日
    4
  • Oracle数据库常用Sql语句大全

    Oracle数据库常用Sql语句大全最简单的就是查询:select语句数据库操作语言DML:update、insert、delete等数据库定义语言DDL:create、drop、alter等等oracle取前几条数据语句sqlserver中可以用topn的方法,oracle中用rownum,但如果只用rownum会随机取数据,如果想按一定顺序取前几条数据则可这样写:select*from(select列from表where条件orderby列desc)whererownum<>sel

    2022年5月12日
    42
  • 大数据处理的基本流程是什么?[通俗易懂]

    写在前面本文隶属于专栏《100个问题搞定大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!本专栏目录结构和文献引用请见100个问题搞定大数据理论体系解答大数据处理流程主要分为3步:1.数据抽取和集成2.数据分析3.数据解释补充1.数据抽取与集成由于大数据处理的数据来源类型丰富,利用多个数据库来接收来自客户端的数据,包括企业内部数据库、互联网数据和物联网数据,所以需要从数据中提取关系和实体,经过关联和聚合等操作,按照统一定义的格式对数据

    2022年4月9日
    79
  • 今天下午借了两本Cisco的书。

    今天下午借了两本Cisco的书。

    2021年7月23日
    57
  • Git合并分支超详细解释

    Git合并分支超详细解释摘自朱双印老师博客 http www zsythink net archives 3470 在执行 合并 操作时 我们可以根据具体情况 选择不同的合并模式去合并 不同的合并模式对应了不同的命令参数 而且在合并的过程中 还可能遇到 冲突 为了说明白原理 我们先来看一些示意图此示意图并没有涉及到任何合并操作 而是描述了合并分支之前 两个分支的创建过程 上图中的第 1 步表示已经存在的一条分支 这条分支的名字是 base 第 2 步表示基于 base 分支 创建了 new 分支 此时 base 分支的指针和 new 分支的

    2025年7月12日
    2
  • layui弹窗间的传值(layui弹出层传值)(窗口传值)[通俗易懂]

    layui弹窗间的传值(layui弹出层传值)(窗口传值)[通俗易懂]主要有两部分1、从主窗口传值到弹出层2、从弹出层传值到主窗口1、从主窗口传值到弹出层首先时jschangefileone函数时按钮绑定事件,按钮点击后调用这个函数然后弹出弹出层,加载changefile.html界面然后success提前加载changefile的form数据(从主窗口传值到弹出层)//bootstraptable的修改,点击按钮的时候自动选中该行,因此可以获取到整行…

    2022年6月12日
    140

发表回复

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

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