Refactoring for DRY (original) (raw)

Barry Burd bburd at drew.edu
Mon Apr 8 16:35:36 PDT 2013


The following code seems very repetitious to me. Ss there a recommended way to refactor this code?

people.parallelStream()
  .filter(p -> p.getAge() >= 12)
  .filter(p -> p.getAge() < 65)
  .forEach(p -> {
    p.setPrice(9.25);
  });

people.parallelStream()
  .filter(p -> p.getAge() >= 12)
  .filter(p -> p.getAge() < 65)
  .filter(p -> p.hasCoupon())
  .forEach(p -> {
    p.setPrice(p.getPrice() - 2.00);
  });

people.parallelStream()
  .filter(p -> (p.getAge() < 12 || p.getAge() >= 65))
  .forEach(p -> {
    p.setPrice(5.25);
  });

people.stream()
  .forEach(p -> {
    p.display();
  });

people.stream().map(p -> p.getPrice()).forEach(amount -> total += amount);


More information about the lambda-dev mailing list