具有泛型类类型的Java反射getDeclaredMethod()
我在a班有一个方法:具有泛型类类型的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",
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) { ... }