2

我正在使用反射来获取所有方法参数名称。

问题是当参数之一是类型时: the.package.myobject [] (array)

String name = method.getParameterTypes()‬[0].getName()

我得到:[the.package.myobject;] //字母 L 和符号 ;

如何获得纯类型名称?(没有子串)

4

2 回答 2

8

您需要检查type.isArray(),如果是,请使用getComponentType().

final Class<?> c = method.getParameterTypes()[0];
final String name = (c.isArray()? c.getComponentType() : c).getName();
于 2012-11-14T13:20:38.857 回答
1

最有可能你想要的是

Class firstType = method.getParameterTypes()‬[0];

// will be null if not an array.
Class firstComponentType = firstType.getComponentType();
于 2012-11-14T13:18:49.433 回答