import java.util.* ; import java.util.function.* ; //---------------------------------------------------------------------------------------------------------- /* Illustrating the functional interfaces */ class Person { public enum Sex { MALE, FEMALE } String name; //LocalDate birthday; Sex gender; String emailAddress; int age ; public int getAge() { return age ; } public Sex getGender() { return gender ; } public void printPerson() { System.out.println( "Printing Person:" + "Name = " + name ) ; } } //---------------------------------------------------------------------------------------------------------- interface CheckPerson { boolean test(Person p); } //---------------------------------------------------------------------------------------------------------- public class func3 { //---------------------------------------------------------------------------------------------------------- public static void printPersons(List roster, Predicate tester ) { tester = tester.negate() ; for (Person p : roster) { if (tester.test(p)) { p.printPerson(); } } //for } //---------------------------------------------------------------------------------------------------------- public static void main( String args[] ) { System.out.println( "Inside main" ) ; List roster1 = new Vector() ; Person p1= new Person() ; p1.name = "Ajay" ; p1.age = 20 ; p1.gender = Person.Sex.MALE ; roster1.add( p1 ) ; p1= new Person() ; p1.name = "Timothy" ; p1.age = 24 ; p1.gender = Person.Sex.MALE ; roster1.add( p1 ) ; // roster1.forEach(System.out::println); printPersons( roster1, (personObj) -> personObj.getAge()> 20 ) ; } //---------------------------------------------------------------------------------------------------------- }