java – 如何使用反射告诉方法有一个varargs参数?
发布时间:2020-12-14 23:32:00 所属栏目:Java 来源:网络整理
导读:这是一个示例代码 package org.example;import java.lang.reflect.Method;class TestRef { public void testA(String ... a) { for (String i : a) { System.out.println(i); } } public static void main(String[] args){ Class testRefClass = TestRef.cla
这是一个示例代码
package org.example; import java.lang.reflect.Method; class TestRef { public void testA(String ... a) { for (String i : a) { System.out.println(i); } } public static void main(String[] args){ Class testRefClass = TestRef.class; for (Method m: testRefClass.getMethods()) { if (m.getName() == "testA") { System.out.println(m); } } } } 输出是 public void org.example.TestRef.testA(java.lang.String[]) 因此,报告该方法的签名采用String数组. 在反射库中是否有任何意思我可以告诉该方法最初被声明为采用varargs? 解决方法
对. 但是,如果您尝试以人类可读的形式组装和显示方法签名,则仅使用此选项.如果需要使用反射调用varargs方法,则必须将varargs参数组装成数组类型的参数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |