Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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反射getDeclaredMethod()_Java_Generics_Reflection - Fatal编程技术网

具有泛型类类型的Java反射getDeclaredMethod()

具有泛型类类型的Java反射getDeclaredMethod(),java,generics,reflection,Java,Generics,Reflection,我在a班有一个方法: class Parameter { ... } class A { private <T extends B> void call(T object, Parameter... parameters){ ... } } Thx.它们应该是B和参数[],因为B是T的第一个参数,varargs被实现为数组: Method method = a.getClass().getDeclaredMethod( "call",

我在a班有一个方法:

class Parameter {
...
}

class A {
   private <T extends B> void call(T object, Parameter... parameters){
   ...
   }
}

Thx.

它们应该是
B
参数[]
,因为
B
T
的第一个参数,varargs被实现为数组:

Method method = a.getClass().getDeclaredMethod(
        "call",
        B.class,
        Parameter[].class
);
请注意,您有一个语法错误:
应该是

还请注意,您所展示的方法根本不需要是泛型的。这同样有效:

private void call(B object, Parameter... parameters) { ... }

Class a=新的a()无效。你的意思是
classa=newa().getClass()
A A=新A()。对不起,我的意思是A=新A()。谢谢,它能用!我还更新了语法错误。顺便说一句,我想知道为什么B.class在这里工作,以及参数[].class的含义是什么。@user537555很乐意帮助
.class
返回表示该类型的
class
文本。它适用于数组类型,如
Parameter[].class
,甚至是基元类型,如
int.class
(这就是使用
int
查找方法的方式)。
private void call(B object, Parameter... parameters) { ... }