我正在使用反射來獲取所有方法的參數名稱。Reflection Method.getParameterTypes() - 對象數組參數
問題是,當所述參數中的一個的類型爲:the.package.myobject [](數組)
String name = method.getParameterTypes()[0].getName()
我得到:[the.package.myobject;] //字母L和符號;
我該如何獲得純類型名稱? (不substringing)
我正在使用反射來獲取所有方法的參數名稱。Reflection Method.getParameterTypes() - 對象數組參數
問題是,當所述參數中的一個的類型爲:the.package.myobject [](數組)
String name = method.getParameterTypes()[0].getName()
我得到:[the.package.myobject;] //字母L和符號;
我該如何獲得純類型名稱? (不substringing)
你需要檢查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();
對不起,這是一個錯字,請再看我的文章。 – markiz
我剛加了'()' – AlexR
+1或者getComponentType()並檢查'null'。 –