Скажем, я каким-то образом получил ссылку на объект из другого класса:
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]);
}
}
Это уже дает мне хорошее резюме конструктора, например, открытый публичный тест конструктора (String paramName) показан как открытый 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);
}
}
}
}
}
К сожалению, это не дает мне ожидаемого результата. Может ли кто-нибудь сказать мне, как я должен это делать или что я делаю неправильно? Спасибо!