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
/**
* 消費者 接收參數(shù)的函數(shù)式接口 無返回值 有入?yún)? void accept(T t);
*/
Consumer<SysUser> consumer = sysUser ->{
System.out.println(sysUser.getLoginName());
};
SysUser sysUser = new SysUser();
sysUser.setLoginName("張三");
consumer.accept(sysUser); //"張三"
/**
* 生產(chǎn)者 產(chǎn)生返回值的函數(shù)式接口 有返回值 無入?yún)? T get();
*/
Supplier<SysUser> supplier =() ->{
SysUser sysUser1 = new SysUser();
sysUser1.setLoginName("李四");
return sysUser1;
};
System.out.println(supplier.get().getLoginName());//"李四"
/**
* 有入?yún)?有出參 R Apply(T t); 將T轉(zhuǎn)化成R 對于接口中的參數(shù) 就是SysUser轉(zhuǎn)化成String 入?yún)⑹?lt;>中第一個 出參是第二個
*/
Function<SysUser,String> function = (sysUser2)->{return sysUser2.getLoginName();};
SysUser sysUser2 = new SysUser();
sysUser2.setLoginName("function 張三");
System.out.println(function.apply(sysUser2));
}
}