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