簡體   English   中英

訪問Java類上的私有類

[英]Accessing to private classes on Java class

假設我有A類:

class A
{
   private String value;
   private B field;
   public C otherField;
}

class C
{
   private String otherValue;
}

class B
{
   private String name;
}

現在,如果我執行A.class.getClasses(),則將得到一個帶有一個元素的數組(該元素是公共的,根據Class.java的javadoc的說法是有意義的)。

我的問題是:有沒有一種方法可以返回類的公共和私有字段列表?

謝謝

getClasses()方法不是訪問屬於A類的字段的正確方法。 您需要使用getDeclaredFields()方法訪問表示類中字段的Field對象數組。 從那里,您需要通過調用setAccessible()將字段的可訪問性設置為true 通過查看Java Reflection API以及此處,可以獲得更多信息。

您應該注意到,getDeclaredField將僅返回在類中聲明的類的字段。 從超類繼承的字段將不會返回。 要獲取類的所有字段,您必須迭代超類(使用Class.getSuperclass())。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM