作者:Tony_Friday | 来源:互联网 | 2023-02-01 15:53
1> Eran..:
你使用的是错误的方法.
要获取每个构造函数的get参数数量,请使用:
System.out.println("ctor len " + c.getParameterCount());
你会得到0
和2
,符合市场预期.
getTypeParameters().length
返回泛型类型参数的数量,并且没有任何构造函数具有泛型类型参数.
例如,如果您将第二个构造函数更改为:
public Pet(String petName, int petAge) {
....
}
getTypeParameters().length
将1
为该构造函数.
查看Javadoc:
int java.lang.reflect.Constructor.getParameterCount()
返回此对象表示的可执行文件的形式参数的数量(无论是显式声明还是隐式声明,或两者都没有).
TypeVariable [] java.lang.reflect.Constructor.getTypeParameters()
返回TypeVariable对象的数组,这些对象表示由此GenericDeclaration对象以声明顺序表示的泛型声明声明的类型变量.如果底层泛型声明未声明类型变量,则返回长度为0的数组.