-2
我在我们的代码库中有以下代码,并且我正在努力一点以更功能性的方式重构此代码,并且我希望这里有人能帮助我。这个想法是找到人的地址ID。请参见下面的代码:重构程序性Java代码到功能代码
public Integer findAddressId(String name) {
List<Person> persons = getPersons(name);
Integer addressId = -1;
for (Person person : persons) {
List<Address> addresses = findAddresses(person);
for (Address address : addresses) {
if (livesAtAddress(person, address)) {
addressId = address.getId();
}
}
}
if(addressId > 0) {
return addressId;
} else {
throw new RuntimeException("Cannot find address for person " + name);
}
}
这些都是一些辅助方法:
private boolean livesAtAddress(Person person, Address address) {
return false;
}
private List<Address> findAddresses(Person person) {
return null;
}
private List<Person> getPersons(String name) {
return null;
}
这似乎是我正在寻找的东西。我正在努力与flatMap /过滤器组合。很好,谢谢你! –