编程技术文章分享与教程

网站首页 > 技术文章 正文

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

hmc789 2024-11-16 20:56:09 技术文章 2 ℃
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));

    }
}
标签列表
最新留言