簡體   English   中英

使用反射訪問Java中子類和超類的屬性

[英]Accessing properties of subclasses and superclasses in java with reflection

我有許多派生自相同基本類型的類。 基本類型包含子類共有的所有成員。 當實例化子類時,我需要通過反射來訪問其成員。 我需要訪問每個子類的所有成員,但是我需要將基類中存在的那些成員與子類中存在的那些成員隔離。 例如:

public abstract class mainBaseClass{
    public String firstname;
    public String lastname;
}
public class subClass extends mainBaseClass{
    public String property1;
    public String property2;
}

我正在按以下方式訪問成員:

Field[] fields = objectName.getClass().getFields();
for(Field f : fields){
    Log.d("FIELD NAME", f.getName());
}

當我使用反射來暴露“ subClass”實例中包含的屬性時,如何區分“ firstname”和“ lastname”與“ property1”和“ property2”?

我不確定如何實現這一點。 有人可以提供解決方案還是一個尋找地方的地方? 謝謝! 維維安

請改用Class#getDeclaredFields() Java文檔

返回一個Field對象數組,該數組反映由該Class對象表示的類或接口聲明的所有字段。 這包括公共,受保護,默認(程序包)訪問和私有字段, 但不包括繼承的字段。

暫無
暫無

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

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