<返回更多

java8中自带常用的函数式接口

2021-10-18    奋斗着的java小码农
加入收藏
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));

    }
}
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>