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

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

如何將值從一個(gè) Java 類(lèi)復(fù)制到具有相同屬性的另一個(gè)類(lèi)

如何將值從一個(gè) Java 類(lèi)復(fù)制到具有相同屬性的另一個(gè)類(lèi)

拉風(fēng)的咖菲貓 2023-04-26 16:54:56
這是我的類(lèi)結(jié)構(gòu):(省略了 getter 和 setter)public class A {     public List<QuestionTemplate> qTemplateList;}public class QuestionTemplate {    public List<QuestionList> qList;}public class QuestionList {    public String questionText;    public String questionChoice;}----------------------------------------------------public class B {     public List<QuestionTemplate> qTemplateList;}public class QuestionTemplate {    public List<QuestionList> qList;}public class QuestionList {    public String questionText;    public String questionChoice;} 我想手動(dòng)將數(shù)據(jù)從 B 類(lèi)復(fù)制到 A 類(lèi),手動(dòng)復(fù)制字段而不是使用任何類(lèi)型的映射器。我嘗試遍歷列表并嘗試從一個(gè)列表復(fù)制到另一個(gè)列表(從最內(nèi)部的列表開(kāi)始但遇到了很多問(wèn)題。請(qǐng)?jiān)徫沂切率?。我試過(guò)了。請(qǐng)幫忙。
查看完整描述

1 回答

?
三國(guó)紛爭(zhēng)

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

此代碼需要 Java 7 或更高版本。


選項(xiàng) A 通過(guò)迭代手動(dòng)復(fù)制數(shù)據(jù):


    A a = new A();


    ..


    List<QuestionTemplate> templateListCopy = new LinkedList<>();

    for (QuestionTemplate template : a.qTemplateList) {

        List<QuestionList> questionListCopy = new LinkedList<>();

        for (QuestionList question : template.qList) {

            QuestionList questionCopy = new QuestionList();

            questionCopy.questionText = question.questionText;

            questionCopy.questionChoice = question.questionChoice;

            questionListCopy.add(questionCopy);

        }

        QuestionTemplate questionTemplateCopy = new QuestionTemplate();

        questionTemplateCopy.qList = questionListCopy;

        templateListCopy.add(questionTemplateCopy);

    }

    B b = new B();

    b.qTemplateList = templateListCopy;

選項(xiàng) B 修改類(lèi)并添加復(fù)制方法,使實(shí)現(xiàn)代碼不那么混亂:


class A {

    public List<QuestionTemplate> qTemplateList;


    public A copy() {

        A copy = new A();

        List<QuestionTemplate> questionTemplateListCopy = new ArrayList<>(qTemplateList.size());

        for (QuestionTemplate questionTemplate : qTemplateList) {

            questionTemplateListCopy.add(questionTemplate.copy());

        }

        copy.qTemplateList = questionTemplateListCopy;

        return copy;

    }

}


class QuestionTemplate {

    public List<QuestionList> qList;


    public QuestionTemplate copy() {

        QuestionTemplate copy = new QuestionTemplate();

        List<QuestionList> qListCopy = new ArrayList<>(qList.size());

        for (QuestionList questionList : qList) {

            qListCopy.add(questionList.copy());

        }

        copy.qList = qListCopy;

        return copy;

    }

}


class QuestionList {

    public String questionText;

    public String questionChoice;


    public QuestionList copy() {

        QuestionList copy = new QuestionList();

        copy.questionText = questionText;

        copy.questionChoice = questionChoice;

        return copy;

    }

}

執(zhí)行:


A a = new A();


..


B b = new B();

b.qTemplateList = a.copy().qTemplateList;


查看完整回答
反對(duì) 回復(fù) 2023-04-26
?
函數(shù)式編程

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

請(qǐng)參考此 通過(guò)反射將一個(gè)類(lèi)中的字段的所有值復(fù)制到另一個(gè)類(lèi)

那里已經(jīng)回答了類(lèi)似的問(wèn)題。


查看完整回答
反對(duì) 回復(fù) 2023-04-26
  • 1 回答
  • 0 關(guān)注
  • 247 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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