如何使用List<String>
投射List<HeaderInfo>
HeaderInfo 是我的班级名称
public class HeaderInfo{
public HeaderInfo(List<String> list){}
public HeaderInfo(){}
}
public SomeClass{
List<String> lables = new ArrayList<String>();
lables = getAllLabels();
List<HeaderInfo> lables1 = new ArrayList<HeaderInfo>(lables);
}
我想将lables
转换为List<HeaderInfo>
类型,以便将其传递给我的自定义adapter
说未定义
答案 0 :(得分:1)
将List<String>
作为参数传递给新ArrayList<HeaderInfo>
的构造函数。
List<HeaderInfo> headerList = new ArrayList<HeaderInfo>(lables);
任何Collection
都可以作为参数传递给构造函数,只要它的类型扩展ArrayList
的类型,因为String扩展Object
。构造函数采用Collection
,但List
是Collection的子接口,因此您只需使用List<String>
或
List<HeaderInfo> headerList = Arrays.asList(lables.toArray());
答案 1 :(得分:0)
我相信您想要做的是以下内容:
public SomeClass
{
public List<HeaderInfo> getHeaderInfos()
{
List<String> labels = getAllLabels();
List<HeaderInfo> headerInfos = new ArrayList<HeaderInfo>();
for(String label : labels)
{
headerList.add(new HeaderInfo(label));
}
return headerInfos;
}
}
虽然在这里我假设HeaderInfo只包含一个String作为标签。而且你的构造函数在这种情况下是错误的。 getAllLabels()应返回
List<List<String>>
如果不是这样的话。
答案 2 :(得分:0)
这就是你想要的吗?
class HeaderInfo {
private List<String>list;
public HeaderInfo(List<String> list){
this.list = list;
}
public List<String> getList() {
return list;
}
public HeaderInfo(){}
}
public class Test {
public static void main(String a[])
{
List<String> lables = new ArrayList<String>(getAllLabels());
HeaderInfo headerInfo = new HeaderInfo(lables);
List<HeaderInfo> lables1 = new ArrayList<HeaderInfo>();
lables1.add(headerInfo);
for(Object list : lables1)
{
HeaderInfo headerInfo1 = (HeaderInfo)list;
System.out.println(headerInfo.getList().toString());
}
}
private static List<String> getAllLabels() {
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
return list;
}
}