Java 8 toString()如何在以下程序中使用谓词

Java 8 toString()如何在以下程序中使用谓词,java-8,tostring,predicate,Java 8,Tostring,Predicate,有人能解释一下toString()函数是如何处理这个谓词的吗。我理解lambda表达式,但了解如何调用toString()函数 import java.util.function.*; import java.util.*; class Demo{ public static void main(String arv[]){ HashSet <Employee> hs = new HashSet<>(); hs.add(new Employee("A",4

有人能解释一下toString()函数是如何处理这个谓词的吗。我理解lambda表达式,但了解如何调用toString()函数

import java.util.function.*;
import java.util.*;
class Demo{
public static void main(String arv[]){
    HashSet <Employee> hs = new HashSet<>();
    hs.add(new Employee("A",40000,25,"CSE"));
    hs.add(new Employee("B",50000,26,"CSE"));
    hs.add(new Employee("C",54000,30,"ECEadsa"));
    hs.add(new Employee("D",45000,25,"ECE"));
    hs.add(new Employee("E",60000,32,"CSE"));
    Predicate <Employee> emp = t -> t.salary > 50000;
    Predicate <Employee> emp1 = emp.and( t -> t.department.length()>5);
    for(Employee e: hs)
    if (emp1.test(e))
    System.out.println(e);
                                     }
         }
class Employee{
   String name;
   double salary;
   int age;
   String department;
   Employee(String n, double s, int a, String d){
   name = n;
   salary = s;
   age = a;
   department = d;
              }
public String toString(){
   return " name = "+name+" salary = "+salary+" age = "+age+" department = "+department;
                        }
               }
import java.util.function.*;
导入java.util.*;
课堂演示{
公共静态void main(字符串arv[]{
HashSet hs=新的HashSet();
hs.添加(新员工(“A”,40000,25,“CSE”);
hs.添加(新员工(“B”,50000,26,“CSE”);
hs.增补(新员工(“C”,54000,30,“ECEadsa”);
hs.增加(新员工(“D”,45000,25,“ECE”);
hs.添加(新员工(“E”,60000,32,“CSE”);
谓词emp=t->t.salary>50000;
谓词emp1=emp.and(t->t.department.length()>5);
雇员(e:hs)
如果(emp1.试验(e))
系统输出打印ln(e);
}
}
班级员工{
字符串名;
双薪;
智力年龄;
弦乐部;
Employee(字符串n,双s,整数a,字符串d){
name=n;
工资=s;
年龄=a;
部门=d;
}
公共字符串toString(){
return“name=“+name+”salary=“+salary+”age=“+age+”department=“+department;
}
}
输出:
name=C salary=54000.0 age=30 department=ECEadsa

您已经添加了用于打印员工的代码,当您打印任何对象toString()时,如果存在,则调用父对象的toString()方法


对于department.length()>5打印逻辑系统.out.println(e)的员工;在PrintStream类中调用,println(Object x)方法使用String.valueOf(x),它调用对象的toString()。 如果没有覆盖toString()方法,则将使用对象类的默认实现。

System.out.println(e)
e
调用
toString()
,以查找
  for(Employee e: hs)
    if (emp1.test(e))
    System.out.println(e);
              }
         }