第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Java反射遍歷嵌套對(duì)象并列出和更新字段

Java反射遍歷嵌套對(duì)象并列出和更新字段

富國滬深 2021-08-25 09:46:18
我有以下復(fù)雜的 POJO 類發(fā)票public class Measure {    private String id;    private Float value;    public String getId() { return id; }    public void setId(String id) { this.id = id; }        public Float getValue() { return value; }    public void setValue(Float value) { this.value = value; }}public class LineItem {    private Integer lineNumber;          private Measure shipped;           private List<LineItem> lineItems;      public Integer getLineNumber() { return lineNumber; }    public void setLineNumber(Integer lineNumber) { this.lineNumber = lineNumber; }    public Measure getShipped() { return shipped; }    public void setShipped(Measure shipped) { this.shipped = shipped; }    public List<LineItem> getLineItems() { return lineItems; }    public void setLineItems(List<LineItem> lineItems) { this.lineItems = lineItems; }}public class Invoice {    private String originUid;    private String vehicleUid;    private List<LineItem> lineItems;    public String getOriginUid() { return originUid; }    public void setOriginUid(String originUid) { this.originUid = originUid; }    public String getVehicleUid() { return vehicleUid; }    public void setVehicleUid(String vehicleUid) { this.vehicleUid = vehicleUid; }    public List<LineItem> getLineItems() { return lineItems; }    public void setLineItems(List<LineItem> lineItems) { this.lineItems = lineItems; }}現(xiàn)在我想深入遍歷每個(gè)字段,包括 Invoice 對(duì)象中的嵌套對(duì)象,并使用反射更新它們。我可以遞歸調(diào)用 updateIncomingObject()。但我需要知道如何將嵌套對(duì)象從字段中取出,如注釋部分所示。如何將字段轉(zhuǎn)換為對(duì)象實(shí)例?
查看完整描述

1 回答

?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊

要訪問數(shù)組的對(duì)象(用 [] 定義的字段),您可以執(zhí)行以下操作:


if (incomingField.getType().isArray()) {

   Object[] thisArray = (Object[]) incomingField.get(incomingObject);

   for (int k = 0; k < thisArray.length; k++) {

      Object occurrence = thisArray[k];

      Object result = updateIncomingObject(occurrence);

      thisArray[k] = result;

   }

   incomingField.set(incomingObject, thisArray);

要訪問List的對(duì)象,您可以執(zhí)行以下操作:


if (List.class.isAssignableFrom(incomingField.getType())) {

    List<?> thisList = (List<?>) incomingField.get(incomingObject);

    for (int k = 0; k < thisList.size(); k++) {

        Object occurrence = thisList.get(k);

        Object result = updateIncomingObject(occurrence);

        thisList.set(k, occurrence);

    }

}

注意:如果在迭代數(shù)組/列表時(shí)調(diào)用updateIncomingObject并且數(shù)組/列表中的對(duì)象是數(shù)組 (Object[]),則您的方法將不會(huì)執(zhí)行任何操作,因?yàn)閿?shù)組 (Object[]) 的聲明字段數(shù)班級(jí)為0。


我希望這對(duì)你有幫助。


查看完整回答
反對(duì) 回復(fù) 2021-08-25
  • 1 回答
  • 0 關(guān)注
  • 629 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)