[英]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.