Como obter os nomes dos parâmetros dos construtores de um objeto (reflexão)? [duplicado
Esta pergunta já tem uma resposta aqui:
Posso obter o nome do parâmetro do método usando a reflexão Java? 14 respostasDe alguma forma, recebi uma referência de objeto de outra classe:
Object myObj = anObject;
gora, posso obter a classe deste objet
Class objClass = myObj.getClass();
Agora, posso obter todos os construtores dessa classe:
Constructor[] constructors = objClass.getConstructors();
gora, eu posso repetir todo construtor:
if (constructors.length > 0)
{
for (int i = 0; i < constructors.length; i++)
{
System.out.println(constructors[i]);
}
}
Isso já está me dando um bom resumo do construtor, por exemplo, um construtor public Test (String paramName) é mostrado como public Test (java.lang.String)
Em vez de me dar o tipo de classe, no entanto, quero obter o nome do parâmetro .. neste caso "paramName". Como eu faria isso? Eu tentei o seguinte sem sucesso:
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);
}
}
}
}
}
Infelizmente, isso não está me dando o resultado esperado. Alguém poderia me dizer como devo fazer isso ou o que estou fazendo de errado? Obrigado