【发布时间】:2022-12-20 08:09:08
【问题描述】:
我有以下 for 循环:
List<Player> players = new ArrayList<>();
for (Team team : teams) {
ArrayList<TeamPlayer> teamPlayers = team.getTeamPlayers();
for (teamPlayer player : teamPlayers) {
players.add(new Player(player.getName, player.getPosition());
}
}
我正在尝试将其转换为 Stream:
List<Player> players = teams.forEach(t -> t.getTeamPlayers().forEach(p -> players.add(new Player(p.getName(), p.getPosition()))));
但我收到一个错误,变量“玩家”可能尚未初始化 为什么会这样?还有更好的方法来创建流吗?平面图会更好吗?
【问题讨论】:
-
你能用流添加完整的代码吗,在第二种情况下是否存在
List<Player> players = new ArrayList<>();? -
如果我添加
List<Player> players = new ArrayList<>();我得到: Lambda 表达式中使用的变量应该是最终的或有效的最终的
标签: java stream java-stream