【发布时间】:2017-09-24 19:11:45
【问题描述】:
我有两个 POJO, 下面的示例代码
class A {
String name;
Object entries; // this can be a List<String> or a string - hence Object datatype
//getters and setter here
}
class B {
int snumber;
List<A> values;
//getters and setters here
}
控制器类
class ControllerA {
public getList(B b) {
List<String> list = b.getValues().stream.map(e -> e.getEntries()).collect(Collectors.toList()));
}
}
这会返回一个列表列表:
[[12345, 09876], [567890, 43215]]
但我想要的是一个类似的列表
[12345,09876,567890, 43215]
如何使用 Java 8 流来做到这一点?
我也尝试过flatMap,但这不适用于Object 数据类型的条目。
【问题讨论】:
-
Object entries; // this can be a list or a string - hence Object datatype- 这是一种糟糕的做法。多态听起来是个更好的主意,应该会让你的生活更轻松。 -
我怎样才能让它变得更好?
List<String> entries? -
@user2340345 这取决于您的上下文。 这可以是一个列表或字符串 -> 如果它是单个字符串,则使其成为单个元素的列表;如果它是一个包含多个字符串的列表,就这样吧。
标签: java list java-8 java-stream collectors