我有这种方法:
public Method getDeclaredMethod(String name, Class<?>... parameterTypes)
是否可以从parameterTypes
获取类的名称?
parameterTypes
的值为Class[0]@46617
答案 0 :(得分:2)
好吧,您正在使用varargs (...
),所以您将无法仅获得一个类的名称,因为varargs参数只是一个任意长度的数组。您看到的toString()
结果仅仅是Object's default toString
implementation。
由于具有数组,因此可以分别获取每种Class<?>
类型的名称:
for(Class<?> parameterType : parameterTypes) {
parameterType.getCanonicalName();
}
方法.getCanonicalName()
将返回包含包前缀的完全合格的类名,但是有other methods available。
还值得注意的是,在您的特定示例中,您有一个Class[0]
(长度为零的Class
个元素数组,长度为零),因此即使使用for循环,您也可以赢如果未填充此数组,将无法看到任何内容。