У меня есть класс
class Person {
public List<BaseballPlayer> baseballPlayers;
public List<MmaFighter> mmaFighters;
public List<RugbyPlayer> rugbyPlayers;
}
В каждом объектном проигрывателе есть свойство String для его идентификатора.Я пытаюсь собрать все идентификаторы в списке, которые я делаю
List<String> baseballPlayersIds = person.baseballPlayers.stream()
.map(s -> s.getId()).collect(Collectors.toList());
List<String> mmaFightersIds = person.mmaFighters.stream()
.map(s -> s.getId()).collect(Collectors.toList());
List<String> rugbyPlayersIds = person.rugbyPlayers.stream()
.map(s -> s.getId()).collect(Collectors.toList());
baseballPlayersIds.addAll(mmaFightersIds);
baseballPlayersIds.addAll(rugbyPlayersIds);
Теперь я пытаюсь упростить вещи и улучшить логику с помощью Stream.concat ()
Stream<List<BaseballPlayer>> baseballPlayersIdsStream = Stream.of(person.baseballPlayers);
Stream<List<MmaFighter>> mmaFightersIdsStream = Stream.of(person.mmaFighters);
Stream<List<RugbyPlayer>> rugbyPlayersIdsStream = Stream.of(person.rugbyPlayers);
Stream<List<? extends Object>> personStream = Stream.concat(baseballPlayersIdsStream, Stream.concat(mmaFightersIdsStream, rugbyPlayersIdsStream));
, но не могурисунок я должен использовать дженерики для типа нового потока, который выходит из 3 потоков?Также попытался создать родительский класс для всех 3 классов для использования в потоке diamand вместо Object.Этот personStream сомневается.