[英]How does this JAVA 8 lambda method work?
这是Java 8 lambda方法,它的JAVA 7等同于什么?
public interface Function<T, R> {
static <T> Function<T, T> identity() {
return t -> t;
}
R apply(T t);
}
所以它只是一个JAVA接口但是如何使用t -> t
?
该lambda表达式等效于以下匿名类实例:
<T> Function<T, T> identity() {
return new Function<T, T> () {
public T apply (T t) {
return t;
}
};
}
lambda表达式使您无需指定要实现的接口方法的名称及其参数类型,因为它们仅用于实现功能接口,它只能有一个抽象方法,因此通过声明目标接口类型( Function<T, T>
在这个例子中Function<T, T>
),很清楚你要实现哪种方法。
当然,Java 7没有静态接口方法,因此您无法在接口中包含该方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.