Refactoring for DRY

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