使用 JAVA 8 想要为每个循环逻辑减少给定的代码
Using JAVA 8 want reduce code for given for each loop logic
我正在使用一个对象从剩余 API 中检索数据,并希望将其复制到另一个 Response java 对象。
目前我已经在下面实现了正常的java
public OrganizationalUnitTeamsList getTeamsDetails() {
List<OrganizationalUnit> organizationalUnitList = organizationalUnitConnector.getOrganizationalUnit();
OrganizationalUnitTeamsList teamsListResponse = new OrganizationalUnitTeamsList();
List<TeamDetails> availableTeamList = new ArrayList<>();
for (OrganizationalUnit organizationalUnit : organizationalUnitList) {
TeamDetails teams = new TeamDetails();
teams.setHierarchyLevel(organizationalUnit.getHierarchyLevel());
teams.setLocationName(organizationalUnit.getLocationName());
teams.setName(organizationalUnit.getName());
teams.setShortName(organizationalUnit.getShortName());
availableTeamList.add(teams);
}
teamsListResponse.setTeams(availableTeamList);
return teamsListResponse;
}
我希望以上代码以 JAVA 8 种方式转换。
有人可以建议我更高效、代码更简洁的方法来实现上述逻辑吗?
提前致谢。
你可以这样做,
List<TeamDetails> availableTeamList = organizationalUnitList.stream()
.map(this::convertToTeam)
.collect(collectors.toList());
然后定义方法 convertToTeam
并在其中放置创建新团队和填充值的逻辑,
private TeamDetails convertToTeam(OrganizationalUnit unit){
TeamDetails team = new teamDetails();
// Setters()
return team;
}
它会做完全相同的事情,但它看起来更干净一些,而且还取决于您的 class 在做什么,您可以选择将方法 convertToTeam
移动到它自己的 class将问题分开。
您应该考虑将此 class OrganizationalUnitTeamsList
重命名为 TeamsResponse
之类的名称,这是 Class
的非常规且令人困惑的名称
我正在使用一个对象从剩余 API 中检索数据,并希望将其复制到另一个 Response java 对象。
目前我已经在下面实现了正常的java
public OrganizationalUnitTeamsList getTeamsDetails() {
List<OrganizationalUnit> organizationalUnitList = organizationalUnitConnector.getOrganizationalUnit();
OrganizationalUnitTeamsList teamsListResponse = new OrganizationalUnitTeamsList();
List<TeamDetails> availableTeamList = new ArrayList<>();
for (OrganizationalUnit organizationalUnit : organizationalUnitList) {
TeamDetails teams = new TeamDetails();
teams.setHierarchyLevel(organizationalUnit.getHierarchyLevel());
teams.setLocationName(organizationalUnit.getLocationName());
teams.setName(organizationalUnit.getName());
teams.setShortName(organizationalUnit.getShortName());
availableTeamList.add(teams);
}
teamsListResponse.setTeams(availableTeamList);
return teamsListResponse;
}
我希望以上代码以 JAVA 8 种方式转换。
有人可以建议我更高效、代码更简洁的方法来实现上述逻辑吗?
提前致谢。
你可以这样做,
List<TeamDetails> availableTeamList = organizationalUnitList.stream()
.map(this::convertToTeam)
.collect(collectors.toList());
然后定义方法 convertToTeam
并在其中放置创建新团队和填充值的逻辑,
private TeamDetails convertToTeam(OrganizationalUnit unit){
TeamDetails team = new teamDetails();
// Setters()
return team;
}
它会做完全相同的事情,但它看起来更干净一些,而且还取决于您的 class 在做什么,您可以选择将方法 convertToTeam
移动到它自己的 class将问题分开。
您应该考虑将此 class OrganizationalUnitTeamsList
重命名为 TeamsResponse
之类的名称,这是 Class