我正在使用反射来获取所有方法参数名称。
问题是当参数之一是类型时: the.package.myobject [] (array)
String name = method.getParameterTypes()[0].getName()
我得到:[the.package.myobject;] //字母 L 和符号 ;
如何获得纯类型名称?(没有子串)
我正在使用反射来获取所有方法参数名称。
问题是当参数之一是类型时: the.package.myobject [] (array)
String name = method.getParameterTypes()[0].getName()
我得到:[the.package.myobject;] //字母 L 和符号 ;
如何获得纯类型名称?(没有子串)
您需要检查type.isArray()
,如果是,请使用getComponentType()
.
final Class<?> c = method.getParameterTypes()[0];
final String name = (c.isArray()? c.getComponentType() : c).getName();
最有可能你想要的是
Class firstType = method.getParameterTypes()[0];
// will be null if not an array.
Class firstComponentType = firstType.getComponentType();