Java 8 toString()如何在以下程序中使用谓词
有人能解释一下toString()函数是如何处理这个谓词的吗。我理解lambda表达式,但了解如何调用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
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);
}
}