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的语法糖.传递一个数组,它会工作.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |