繁体   English   中英

这个JAVA 8 lambda方法如何工作?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM