Compile-time question

Brian Goetz brian.goetz at oracle.com
Sun Apr 7 12:09:05 PDT 2013


display() is private in Person?

On 4/7/2013 2:56 PM, Barry Burd wrote:
> I'm able to compile this simple code ONLY if I comment out the call to p.display(). What am I doing wrong? Thanks.
>
> import java.util.ArrayList;
>
> class CheckAgeForDiscount {
>    ArrayList<Person> people = new ArrayList<Person>();
>
>    public static void main(String args[]) {
>      new CheckAgeForDiscount();
>    }
>
>    CheckAgeForDiscount() {
>
>      fillArray(people);
>
>      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();
>        });
>
>    }
>
>
>
>    private void fillArray(ArrayList<Person> people) {
>      people.add(new Person("Barry", 62, true));
>      people.add(new Person("Harriet", 66, false));
>      people.add(new Person("Jennie", 6, true));
>      people.add(new Person("Sam", 8, false));
>    }
> }
>
>
> public class Person {
>    private String name;
>    private int age;
>    private boolean hasCoupon;
>    private double price;
>
>
>
>    public double getPrice() {
>      return price;
>    }
>    public void setPrice(double price) {
>      this.price = price;
>    }
>    public Person(String name, int age, boolean hasCoupon) {
>      super();
>      this.name = name;
>      this.age = age;
>      this.hasCoupon = hasCoupon;
>    }
>    public String getName() {
>      return name;
>    }
>    public void setName(String name) {
>      this.name = name;
>    }
>    public int getAge() {
>      return age;
>    }
>    public void setAge(int age) {
>      this.age = age;
>    }
>    public boolean hasCoupon() {
>      return hasCoupon;
>    }
>    public void hasCoupon(boolean hasCoupon) {
>      this.hasCoupon = hasCoupon;
>    }
>
>    private void display() {
>      System.out.print(getName());
>      System.out.print(": Please pay $");
>      System.out.print(price);
>      System.out.print(". ");
>      System.out.println("Enjoy the show!");
>    }
> }
>
>
>


More information about the lambda-dev mailing list