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);
}
}
关于java - 如何将 List<XObject> 转换为 List<XObjectWrapper>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25867548/