我编写了一个java程序,使用缓冲读取器从xml读取行。此xml包含问题,多项选择和答案。这些问题,选择和答案存储在List<String>
中。在向用户提出这些问题时,该计划需要List<Question>
。我清楚地知道String
类型的列表无法复制到Question
类型的列表中。那么,我该怎么做?我错过了什么概念?
编辑:
我认为List<Integer>
至List<String>
或者与我的问题不同,因为存在.toString()
和.parseInt()
方法。
答案 0 :(得分:2)
两种类型:
List<String>
和
List<myType>
实际上是两种完全不同的类型。
另请注意:
List
与
相同List<Object>
所以一般来说,从List到List的转换需要以艰难的方式完成:
for(String element : listOfStrings ) {
MyType myType = doStuffToCreateMyType( element );
myTypeList.add( myType );
}
让我们举个例子&#34; MyType&#34;是字符串,另一种类型是&#34;日期&#34;,然后一个示例转换可能是:
private String doStuffToCreateMyType(Date input) {
DateFormatter f = ....
return f.format(input);
// or perhaps could simply do: return input.toString();
}
另外,如果类型可以下载,Java将尝试自动转换元素。所以你应该能够做到这一点:
List<MyType> myTypeList = ...;
List<Object> myObjectList = (List<Object>) myTypeList;
另请注意,如果您尝试将对象置于String中,Java将自动调用Object.toString()为您执行转换。对于两个列表的成对元素,编译器可能不够聪明,但在构建对象类型时需要注意这一点。