gpt4 book ai didi

java - 如何从另一个类访问用户定义的 List<> 值?

转载 作者:行者123 更新时间:2023-12-04 17:10:39 25 4
gpt4 key购买 nike

我正在使用 spring-boot 开发一个 API。基本上我想从 Service 类获取 PortedNumber 类的所有值并将它们存储到一个文本文件中。

public class Service {
PortedNumber portedNumber = new PortedNumber();
public AcknowledgeMessage checkRequestValidity(Request request) throws IOException {
AcknowledgeMessage acknowledgeMessage=new AcknowledgeMessage();
long msisdn = portedNumber.getNumber();
String recipientRC = portedNumber.getRecipientRC();
String donorRC = portedNumber.getDonorRC();
String nrhRC = portedNumber.getNrhRC();

try(FileWriter fw = new FileWriter("myfile.txt", true);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter out = new PrintWriter(bw))
{
out.println(msisdn+"\t"+recipientRC+"\t"+donorRC+"\t"+nrhRC);
} catch (IOException e) {
//exception handling left as an exercise for the reader
}

return acknowledgeMessage;
}
}
public class Request {

protected List<PortedNumber> singleNumber;

public List<PortedNumber> getSingleNumber() {
if (singleNumber == null) {
singleNumber = new ArrayList<PortedNumber>();
}
return this.singleNumber;
}
}



public class PortedNumber {

protected long number;
@XmlElement(required = true)
protected String recipientRC;
@XmlElement(required = true)
protected String donorRC;
@XmlElement(required = true)
protected String nrhRC;
@XmlElement(required = true)
protected PortedAction portedAction;
protected List<ExtensionElement> extension;

public long getNumber() {
return number;
}

public void setNumber(long value) {
this.number = value;
}

public String getRecipientRC() {
return recipientRC;
}

public void setRecipientRC(String value) {
this.recipientRC = value;
}

public String getDonorRC() {
return donorRC;
}


public void setDonorRC(String value) {
this.donorRC = value;
}

public String getNrhRC() {
return nrhRC;
}

public void setNrhRC(String value) {
this.nrhRC = value;
}

public PortedAction getPortedAction() {
return portedAction;
}

public void setPortedAction(PortedAction value) {
this.portedAction = value;
}
}

如何从 Service 类中获取 PortedNumbergetNumber() 的值?

我试过 long number = portedNumber.getNumber(); 但是,它不起作用。它为 msisdn 存储 0,为其他存储 null。

我无法获取 Arraylist 值。我想获取 Arraylist 的所有值并将其存储到文本文件中。

最佳答案

您使用 PortedNumber portedNumber = new PortedNumber(); 在您的 Service 中实例化 portedNumber 属性。这意味着它没有初始化的属性,并且所有属性都将具有它们的默认值(对象为 null,long 为 0)。

您永远不会设置这些属性,因此预计 It stores 0 for msisdn and null for others. 如您所写。


如果我正确理解了您的问题,您希望遍历 request 中的 PortedNumber 列表并将它们写入文件。如果是这种情况,请尝试以下操作:

public class Service {

public AcknowledgeMessage checkRequestValidity(NPCHRequest request) throws IOException {
AcknowledgeMessage acknowledgeMessage=new AcknowledgeMessage();

try(FileWriter fw = new FileWriter("myfile.txt", true);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter out = new PrintWriter(bw)) {
for (PortedNumber portedNumber : request.getSingleNumber()) {
long msisdn = portedNumber.getNumber();
String recipientRC = portedNumber.getRecipientRC();
String donorRC = portedNumber.getDonorRC();
String nrhRC = portedNumber.getNrhRC();
out.println(msisdn+"\t"+recipientRC+"\t"+donorRC+"\t"+nrhRC);
}
} catch (IOException e) {
//exception handling left as an exercise for the reader
}

return acknowledgeMessage;
}
}

关于java - 如何从另一个类访问用户定义的 List<> 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69513618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com