簡體   English   中英

如何轉換清單 <XObject> 列出 <XObjectWrapper> ?

[英]How to transform List<XObject> to List<XObjectWrapper>?

public class XObject {
...
}

public class XObjectWrapper
{
  private final XObject xo;

  public XObjectWrapper(XObject xo) {
    this.xo = xo;
  }
//delegated methods
...
}

我有List<XObject> ,我想獲取List<XObjectWrapper>

顯然,我可以這樣做:

List<XObjectWrapper> wrappedList = new ArrayList<XObjectWrapper> ();
for(XObject xo : xoList) 
{
  wrappedList.add(new XObjectWrapper(xo));
}

我可以使用一些新的java8功能,並且只需一行嗎?

這樣可以:

List<XObjectWrapper> wrappedList = 
   xoList.stream().map(XObjectWrapper::new).collect(toList());

(假設import static java.util.stream.Collectors.toList;

更新資料

為了完整性,以及由於代碼中可能存在的錯誤,下面是一個獨立的示例:

import static java.util.stream.Collectors.toList;
import java.util.ArrayList;
import java.util.List;

static class XObjectWrapper {XObjectWrapper(Object o) {}}
static class XObject {}

public class Test {
  public static void main(String[] args) {
    List<Object> xoList = new ArrayList<>();
    List<XObjectWrapper> wrappedList =
        xoList.stream().map(XObjectWrapper::new).collect(toList());
    System.out.println(wrappedList);
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM