本文介紹了如何獲取對象的構造函數(反射)的參數名稱?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
假設我不知何故從另一個類獲得了一個對象引用:
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]);
}
}
這已經很好地總結了構造函數,例如,構造函數的公共測試(字符串參數名)顯示為公共測試(java.lang.String)
但是,我想要獲取參數的名稱,而不是給我類類型。在本例中為”參數名稱”。我該怎么做呢?我嘗試了以下方法,但沒有成功:
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);
}
}
}
}
}
不幸的是,這并沒有給我帶來預期的結果。誰能告訴我我應該怎么做,或者我做錯了什么?謝謝!
推薦答案
此信息在編譯后丟失,并且無法在運行時檢索。
這篇關于如何獲取對象的構造函數(反射)的參數名稱?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,