菜菜

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在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");

 

posted on 2019-04-24 18:55  好吧,就是菜菜  阅读(108)  评论(0编辑  收藏  举报