java8-函数编程

在Function里面看到一个很奇怪的代码

static <T> Function<T, T> identity() {
        return t -> t;
    }

手动写了几个代码尝试了一下,t->t就是返回一个空的实现

    interface F<T>
    {
        T apply(T t);

        static <T> F<T> identity()
        {
            return t -> {
                System.out.println(t);
                return t;
            };
        }
        static <T> F<T> identity2()
        {
            return t->t;
        }
    }
F<String> f = new F<String>()
        {
            @Override
            public String apply(String t)
            {
                System.out.println(t);
                return t;
            }
        };
        f.apply("asdasdsa");
        f = F.identity();
        f.apply("zzzzzz");
        //empty apply body
        f = t -> t;
        f.apply("kkkkkkkkk");
        
        f =  F.identity2();
        f.apply("kkkkkkkkk");
        
        f = new F<String>() 
        {
        //t->t
            @Override
            public String apply(String t)
            {
                return null;
            }
        };
        f.apply("kkkkkkkkk");

猜你喜欢

转载自www.cnblogs.com/shuiyonglewodezzzzz/p/10764335.html