私は、次のよりもJavaの8を使用して、フィールド名でグループフィールド値マップを作成するには、よりエレガントな方法を見つけようとしている:のJava 8:フィールド名によってフィールド値をグループ化する
あなたが持つことができる@Test
public void groupFieldValuesByFieldNames() {
Person lawrence = aPerson().withFirstName("Lawrence").withLastName("Warren").born();
Person gracie = aPerson().withFirstName("Gracie").withLastName("Ness").born();
Map<String, List<String>> valuesByFieldNames = new HashMap<>();
Stream.of(lawrence, gracie).forEach(person -> {
valuesByFieldNames.computeIfAbsent("lastName", s -> new ArrayList<>()).add(person.getLastName());
valuesByFieldNames.computeIfAbsent("firstName", s -> new ArrayList<>()).add(person.getFirstName());
});
assertThat(valuesByFieldNames, hasEntry("lastName", asList("Warren", "Ness")));
assertThat(valuesByFieldNames, hasEntry("firstName", asList("Lawrence", "Gracie")));
}
あなたはこのような何かをする義務を感じた場合、私は、各フィールド名をマッピングし '地図<文字列、関数<人、文字列>>'で始めたいですそのフィールドのゲッター。 –