リフレクションを使用して、すべてのメソッドパラメーター名を取得しています。
問題は、パラメーターの1つが次のタイプの場合です。the.package.myobject[](配列)
String name = method.getParameterTypes()[0].getName()
次のようになります:[the.package.myobject;]//文字Lと記号;
どうすれば純粋な型名を取得できますか?(サブストリングなし)
リフレクションを使用して、すべてのメソッドパラメーター名を取得しています。
問題は、パラメーターの1つが次のタイプの場合です。the.package.myobject[](配列)
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();