Как получить имена параметров конструкторов объекта (отражение)? [Дубликат]
На этот вопрос уже есть ответ:
Можно ли получить имя параметра метода с помощью отражения Java? 14 ответовСкажем, я как-то получил ссылку на объект из другого класса:
Object myObj = anObject;
Теперь я могу получить класс этого объекта:
Class objClass = myObj.getClass();
Теперь я могу получить все конструкторы этого класса:
Constructor[] constructors = objClass.getConstructors();
Теперь я могу зациклить каждый конструктор:
if (constructors.length > 0)
{
for (int i = 0; i < constructors.length; i++)
{
System.out.println(constructors[i]);
}
}
Это уже дает мне хорошее резюме конструктора, например, конструктор public Test (String paramName) отображается как public Test (java.lang.String)
Вместо того, чтобы дать мне тип класса, я хочу получить имя параметра .. в данном случае «paramName». Как бы я это сделал? Я попробовал следующее безуспешно:
if (constructors.length > 0)
{
for (int iCon = 0; iCon < constructors.length; iCon++)
{
Class[] params = constructors[iCon].getParameterTypes();
if (params.length > 0)
{
for (int iPar = 0; iPar < params.length; iPar++)
{
Field fields[] = params[iPar].getDeclaredFields();
for (int iFields = 0; iFields < fields.length; iFields++)
{
String fieldName = fields[i].getName();
System.out.println(fieldName);
}
}
}
}
}
К сожалению, это не дает мне ожидаемого результата. Может кто-нибудь сказать мне, как я должен делать это или что я делаю неправильно? Благодарность