我将两个系列的数据(冒号)传递给一个方法,并期望在我的Custom类CountryDTO中设置
这是我的CountryDTO课程
public class CountryDTO {
public CountryDTO(String a , String b , String c)
{
}
public String value1;
public String value2;
public String value3;
// setters and getters
}
This is my Main class
public class Test {
public static void main(String args[]) throws Exception {
Test test = new Test();
List list = (List) test.extract("IND,US,UK : WI,PAK,AUS");
Iterator itr = list.iterator();
while (itr.hasNext()) {
CountryDTO ind = (CountryDTO) itr.next();
System.out.println(ind.getValue1());
}
}
public List<CountryDTO> extract(final String v) throws Exception {
String[] values = v.split(":");
List<CountryDTO> l = new ArrayList<CountryDTO>();
for (String s : values) {
String[] vs = s.split(",");
l.add(new CountryDTO(vs[0], vs[1], vs[2]));
}
return l;
}
}
发生的事情是,我输出为null(未设置CountryDTO)
有人可以帮助我吗
答案 0 :(得分:3)
因为在CountryDto
构造函数中,您从未设置value1
,也没有设置其他值,因此它们将保留null
。
答案 1 :(得分:3)
对不起,您的DTO不正确。我认为它应该是这样的:
public class CountryDTO {
private final String value1;
private final String value2;
private final String value3;
public CountryDTO(String a , String b , String c) {
this.value1 = ((a != null) ? a : "");
this.value2 = ((b != null) ? b : "");
this.value3 = ((c != null) ? c : "");
}
// just getters; no setters
}
我不能说你的代码可能做错了什么,但这肯定是偏离基础的。