如何在Service类中获取自定义List<PortedNumber>的所有值并写入文本文件
问题原因
你在Service类中自行实例化了PortedNumber对象,这个全新的对象没有经过属性赋值,自然只能拿到类型默认值,实际有效的PortedNumber列表存储在方法入参的Request对象中。
解决代码
修改后的Service类逻辑如下:
public class Service { public AcknowledgeMessage checkRequestValidity(Request request) throws IOException { AcknowledgeMessage acknowledgeMessage = new AcknowledgeMessage(); // 从入参request中获取所有PortedNumber实例 List<PortedNumber> portedNumberList = request.getSingleNumber(); // 开启IO流写文件 try(FileWriter fw = new FileWriter("myfile.txt", true); BufferedWriter bw = new BufferedWriter(fw); PrintWriter out = new PrintWriter(bw)) { // 遍历所有PortedNumber逐个写入 for (PortedNumber portedNumber : portedNumberList) { 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) { // 按需处理异常 e.printStackTrace(); } return acknowledgeMessage; } }
注意事项
- 如果是Spring Boot接口接收XML/JSON请求,需要确保接口层的
Request参数已经加上了@RequestBody注解,且Request、PortedNumber类加了对应序列化注解(接收XML的话补@XmlRootElement相关注解),框架会自动把请求参数映射到Request对象的singleNumber列表中,不需要手动实例化PortedNumber。
内容的提问来源于stack exchange,提问作者AshikAhmed
相关产品推荐
相关产品推荐

