将List <string>转换为List <mytype>

时间:2015-09-01 07:37:59

标签: java

我编写了一个java程序,使用缓冲读取器从xml读取行。此xml包含问题,多项选择和答案。这些问题,选择和答案存储在List<String>中。在向用户提出这些问题时,该计划需要List<Question>。我清楚地知道String类型的列表无法复制到Question类型的列表中。那么,我该怎么做?我错过了什么概念?

编辑:

我认为List<Integer>List<String>或者与我的问题不同,因为存在.toString().parseInt()方法。

1 个答案:

答案 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()为您执行转换。对于两个列表的成对元素,编译器可能不够聪明,但在构建对象类型时需要注意这一点。