Skip to main content
Code Review

Return to Revisions

2 of 5
added 91 characters in body
user3789184
  • 417
  • 1
  • 4
  • 14

Set default value for remaining size of list by use of Java 8 and Stream

I have written a method which will return the size 16 List every time. If the input List has size less than 16, the remaining list object will be filled with default values. Is there any way to remove the if and for condition from the enrichCardAddress method? Please try to ignore the class name Address. Actually it should be Account.

@Component
public class AccountService {
 public List<Address> enrichCardAddress(List<CardAccountDetail> cardAccountDetails) {
 if (CollectionUtils.isEmpty(cardAccountDetails)) return Collections.emptyList();
 List<Address> addresses = cardAccountDetails.stream().map(AccountService::buildAddress).collect(Collectors.toList());
 if (addresses.size() < 16) {
 int accountCounts = addresses.size();
 for (; accountCounts < 16; accountCounts++) {
 addresses.add(buildDefaultAddress());
 }
 }
 return addresses;
 }
 private Address buildDefaultAddress() {
 Address address = new Address();
 address.setPrimaryAccount("NO");
 address.setAction("NONE");
 address.setAccountStatus("TEST_STATUS");
 address.setAccountType("TEST_ACCOUNT_TYPE");
 address.setAccountDescription("");
 return address;
 }
 private static Address buildAddress(CardAccountDetail cardAccountDetail) {
 Address address = new Address();
 address.setAccountDescription(cardAccountDetail.getAccountDescription());
 address.setAccountNumber(cardAccountDetail.getAccountNumber());
 address.setAccountStatus(cardAccountDetail.getAccountStatus());
 address.setAccountType(cardAccountDetail.getAccountType());
 address.setAction(cardAccountDetail.getAction());
 return address;
 }
}
user3789184
  • 417
  • 1
  • 4
  • 14
lang-java

AltStyle によって変換されたページ (->オリジナル) /