在Java(android)</class type> </string>中将List <string>转换为List <class type>

时间:2014-06-19 08:27:10

标签: java android

如何使用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

说未定义

3 个答案:

答案 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;
}
}