加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用反射调用方法/将List转换为Var Args

发布时间:2020-12-15 08:41:19 所属栏目:Java 来源:网络整理
导读:我有一个参数列表,我有方法名称.我想使用反射调用方法. ?当我检查Method.invoke的 java文档时,它就像Method.invoke(object o,Object args …). ?我知道第一个参数传递的内容(即实例方法调用哪个方法的实例)和args是方法的参数. 但是现在我有了包含要传递给方
我有一个参数列表,我有方法名称.我想使用反射调用方法.
?当我检查Method.invoke的 java文档时,它就像Method.invoke(object o,Object args …).
?我知道第一个参数传递的内容(即实例方法调用哪个方法的实例)和args是方法的参数.

但是现在我有了包含要传递给方法的值的列表.

比如说:我想调用方法ClassName.methodName(String,int,int),我有一个包含{val1,3,4}的List.

使用反射可能类似于Method.invoke(classNameInstance,??????).但我不知道如何将参数列表转换为varargs并传递.

一种方法可能是如果我知道列表大小是3然后我可以编写Method.invoke(classNameInstance,list.get(0),list.get(1),list.get(2)).

但是我想动态调用的一些方法需要0到12个参数.所以创建switch case并编写12个案例看起来并不“好”.每个都将检查参数的数量,并使用参数构建单独的调用.

除了使用开关盒外,还有什么方法可以解决这个问题?

任何帮助将不胜感激.

解决方法

符号对象…仅仅意味着对象[].它只是Arraynotation的语法糖.传递一个数组,它会工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读