我正在尝试创建一个 Map<String, List<Moo>> fooMoos;
来自以下类结构:
class Foo {
String id;
Bar bar;
}
class Bar {
List<Moo> moos;
}
List<Foo> foos;
如果 moos 直接是 Foo 的一个字段,我会这样做
Map<String, List<Moo>> fooMoos = foos.stream().collect(Collectors.toMap(Foo::getId, Foo::getMoos));
但是您如何使用子字段做到这一点?有没有类似 Foo::getBar::getMoos 的东西?
我觉得这里需要一个平面 map ,但不知道该怎么做。
最佳答案
函数引用很有用,但它们不支持链接。你需要使用像这样的 lambda
foo -> foo.bar.moos
或
foo -> foo.getBar().getMoos()
关于Java 8 流 : Map with values from sub field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42820915/