我需要有关如何使用for循环设置值的帮助,而无需在使用类时替换现有值。例如,我需要打印出三个不同的值,分别是test1,test2,test3。下面是代码,
PaymentInstructionInformation3 paymentInstructionInformation3 = new PaymentInstructionInformation3();
for(int i=0 ;i<4;i++){
if(i==1)
{
PartyIdentification32 partyIdentification32Body1 = new PartyIdentification32();
partyIdentification32Body1.setNm("test1");
paymentInstructionInformation3.setDbtr(partyIdentification32Body1);
}else
if(i==2)
{
PartyIdentification32 partyIdentification32Body2 = new PartyIdentification32();
partyIdentification32Body2.setNm("test2");
paymentInstructionInformation3.setDbtr(partyIdentification32Body2);
}else
if(i==3)
{
PartyIdentification32 partyIdentification32Body3 = new PartyIdentification32();
partyIdentification32Body3.setNm("test3");
paymentInstructionInformation3.setDbtr(partyIdentification32Body3);
}
}
totalLst.add(paymentInstructionInformation3);
当前输出
<PmtInf>
<Dbtr>
<Nm>test3</Nm>
</Dbtr>
</PmtInf>
预期产出
<PmtInf>
<Dbtr>
<Nm>test1</Nm>
<Nm>test2</Nm>
<Nm>test3</Nm>
</Dbtr>
</PmtInf>
实施班级
protected String nm;
public String getNm() {
return nm;
}
public void setNm(String value) {
this.nm = value;
}
感谢您的帮助
答案 0 :(得分:0)
尝试把这一行:
totalLst.add(paymentInstructionInformation3);
进入for循环。这会导致totalList
内部添加3 paymentInstructionInformation3
for循环。
如果没有帮助,请写下发生的事情
答案 1 :(得分:0)
为什么你需要if语句?你在每个区块做同样的事情
此外,您必须添加到循环内的列表中,而不是在其结束后
for(int i=1 ;i<4;i++){
PaymentInstructionInformation3 pay = new PaymentInstructionInformation3();
PartyIdentification32 party = new PartyIdentification32();
party.setNm("test"+i);
pay.setDbtr(party);
totalLst.add(pay) ;
}
答案 2 :(得分:0)
请将paymentInstructionInformation3对象创建语句放在for循环中作为第一个语句。这样可以避免覆盖这些值。将for循环中的totalLst.add()语句作为最后一个语句放置,以便将所有三个项目添加到列表中。
答案 3 :(得分:0)
此行TotalLst.add(paymentInstructionInformation3);已经不在了。所以,它只添加一次而不是第三次。
答案 4 :(得分:0)
你可以做两件事: 你可以进行初始化和实例化 paymentInstructionInformation3 在if / else块和行之前进入循环 totalLst.add(paymentInstructionInformation3); 在这个块之后。但在这种情况下,您将有3个PaymentInstructionInformation3实例。 2.你可以保留类名为PaymentInstructionInformation3的成员,它叫做我猜想nm不是单个实体,而是作为这个实体的列表。在每个if / else部分中,您都可以为此列表添加值。
答案 5 :(得分:0)
首先,您为什么要使用循环来创建 partyIdentification ?由于您始终创建partyIdentification32BodyN,因此您可以在没有循环的情况下实例化它们。它会像这样:
PaymentInstructionInformation3 paymentInstructionInformation3 = new PaymentInstructionInformation3();
PartyIdentification32 partyIdentification32Body1 = new PartyIdentification32();
partyIdentification32Body1.setNm("test1");
paymentInstructionInformation3.setDbtr(partyIdentification32Body1);
PartyIdentification32 partyIdentification32Body2 = new PartyIdentification32();
partyIdentification32Body2.setNm("test2");
paymentInstructionInformation3.setDbtr(partyIdentification32Body2);
PartyIdentification32 partyIdentification32Body3 = new PartyIdentification32();
partyIdentification32Body3.setNm("test3");
paymentInstructionInformation3.setDbtr(partyIdentification32Body3);
其次,您的 paymentInstructionInformation3.setDbtr 似乎不会将 partyIdentification32BodyN 添加到列表中,而是替换以前的值。
您可以将 paymentInstructionInformation3.setDbtr 更改为 paymentInstructionInformation3.addDbtr ,并将参数添加到PaymentInstructionInformation3内的List。例如:
class PaymentInstructionInformation3 {
List<PartyIdentification32> dbtrList = new ArrayList<>();
public void addDbtr(PartyIdentification32 debtr) {
this.dbtrList.add(debtr);
}
}
我希望它有所帮助。