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


相关推荐

  • 新视野大学英语(第三版)读写教程4答案

    新视野大学英语(第三版)读写教程4答案Unit1TextATextA.Languagefocus1.crumbled2.discern3.surpass4.shrewd5.conversion6.distort7.radiant8.Ingenious9.propositionTextA:LanguagefocusWordbuildingPractice1delicacybankruptcyac…

    2022年6月14日
    38
  • matlab实现香农编码原理_香农编码c语言实现

    matlab实现香农编码原理_香农编码c语言实现最近有个实验是用MATLAB实现香农编码的,在网上看到了别人写的程序,大部分都不支持手动输入信源,我自己就加上了几行,能够直接输入信源分布,下面是程序:pa=input(‘请输入信源分布:’)k=length(pa);   %计算信源符号个数ifmin(pa)&lt;0||max(pa)&gt;1  %判断信源概率值是否介于0到1之间  %disp([‘信源分布pa(x)=[‘,…

    2022年9月11日
    2
  • 程序员:为什么“基础不牢”成为我薪资被砍的理由?!

    程序员:为什么“基础不牢”成为我薪资被砍的理由?!

    2021年6月14日
    131
  • PAT考试一些注意事项[通俗易懂]

    有除法时,特别处理分母为0的情况 执行后发现卡住了,很有可能是scanf时忘记写&amp;了 if判断语句注意不要把==写成= 程序提交后显示超时,注意检查循环跳出情况,for中的i–是不是写成了i++ 判断素数时,i的取值范围[2,sqrt(a)],其中a是待判断的数 把ID当成int类型时,最后输出记得在前面添加0补齐 当图的节点有&gt;=10000个时,用邻接…

    2022年4月9日
    50
  • plc中scl语言_plc中scr是什么意思

    plc中scl语言_plc中scr是什么意思本人小白一个,只是刚刚学习scl,想与大家分享一下,如果您是大佬,请勿喷。在我的理解,PLC就像单片机,而scl语言就像C语言,例如scl语言里的=就是C里的==如果学过C将会事半功倍,SCL语言学习并不需要什么网上视频,譬如我在某宝上买了一个视频,发现他讲的没有什么用处你只要会按F1,都能把他讲的找到,西门子的帮助功能十分强大,你可以找到基础的+,-,*,/,=,:=等等,他都会教给你使用及符…

    2022年10月7日
    1
  • Java main方法

    Java main方法publicstaticvoidmain(String[]args){}或者 publicstaticvoidmain(Stringargs[]){}main方法是我们学习Java语言学习的第一个方法,也是每个java使用者最熟悉的方法,每个Java应用程序都必须有且仅有一个main方法。在eclipse里可以使用输入main,在按住Alt+/的方式快速创建main方法

    2022年6月1日
    26

发表回复

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

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