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