Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 空类数组的重集中_Java_Reflection_Parameters_Null_Representation - Fatal编程技术网

Java 空类数组的重集中

Java 空类数组的重集中,java,reflection,parameters,null,representation,Java,Reflection,Parameters,Null,Representation,实际上,我正在考虑使用Java反射从类“CC1”获取方法,该方法的名称存储在字符串“methodName”中 方法actualMethod=CC1.getMethod(方法名,参数类型); 这就是语法。问题是该方法不带参数。我如何在参数类型中表示它 其中parameterTypes是类的数组 类似地,下面的代码将调用该方法 Object retobj=actaulMethod.invoke(actualObject,arglist); arglist是对象数组,它也必须是空的 如果有什么

实际上,我正在考虑使用Java反射从类“CC1”获取方法,该方法的名称存储在字符串“methodName”中


方法actualMethod=CC1.getMethod(方法名,参数类型);

这就是语法。问题是该方法不带参数。我如何在参数类型中表示它

其中parameterTypes是类的数组

类似地,下面的代码将调用该方法


Object retobj=actaulMethod.invoke(actualObject,arglist);

arglist是对象数组,它也必须是空的


如果有什么不清楚的地方,请询问。谢谢。

不要通过第二个参数:

CC1.getMethod(methodName);
(这利用了)

这相当于传递一个空数组:

CC1.getMethod(methodName, new Class[] {});

不要传递第二个参数:

CC1.getMethod(methodName);
(这利用了)

这相当于传递一个空数组:

CC1.getMethod(methodName, new Class[] {});
签名为:

Method getMethod(String name, Class... parameterTypes) 
所以只需去掉第二个参数,它就应该可以工作了。i、 e

Method actualMethod= CC1.getMethod(methodName);
签名为:

Method getMethod(String name, Class... parameterTypes) 
所以只需去掉第二个参数,它就应该可以工作了。i、 e

Method actualMethod= CC1.getMethod(methodName);

不传递第二个参数将导致编译器错误。因为我有一个更大的代码库,所以我无法通过传递空数组来测试代码。这不会导致编译时错误,除非您使用的是Java 1.4。不传递第二个参数将导致编译器错误。因为我有一个更大的代码库,所以我也无法通过传递空数组来测试代码。这不会导致编译时错误,除非您使用的是Java 1.4 invoke方法也是同样的方法。谢谢你们,你们的标题有误导性。您所指的是类的空数组,而不是空类。。。这在术语上是矛盾的。@EJP:你是对的。我已经适当地修改了标题。同样的方法也适用于invoke方法。谢谢你们,你们的标题有误导性。您所指的是类的空数组,而不是空类。。。这在术语上是矛盾的。@EJP:你是对的。我已经适当地修改了标题。