public class LambdaDemo {
public static void main(String[] args) {
/**
* 用来判定true或者false boolean test(T t);
*/
Predicate<String> predicate = str->"abc".equals(str);
System.out.println(predicate.test("abc")); //true
/**
* 消费者 接收参数的函数式接口 无返回值 有入参 void accept(T t);
*/
Consumer<SysUser> consumer = sysUser ->{
System.out.println(sysUser.getLoginName());
};
SysUser sysUser = new SysUser();
sysUser.setLoginName("张三");
consumer.accept(sysUser); //"张三"
/**
* 生产者 产生返回值的函数式接口 有返回值 无入参 T get();
*/
Supplier<SysUser> supplier =() ->{
SysUser sysUser1 = new SysUser();
sysUser1.setLoginName("李四");
return sysUser1;
};
System.out.println(supplier.get().getLoginName());//"李四"
/**
* 有入参 有出参 R Apply(T t); 将T转化成R 对于接口中的参数 就是SysUser转化成String 入参是<>中第一个 出参是第二个
*/
Function<SysUser,String> function = (sysUser2)->{return sysUser2.getLoginName();};
SysUser sysUser2 = new SysUser();
sysUser2.setLoginName("function 张三");
System.out.println(function.apply(sysUser2));
}
}