首页 > 看Java1.8自带的源代码时,看到了 -> 符号,这个符号是什么意思?

看Java1.8自带的源代码时,看到了 -> 符号,这个符号是什么意思?

在Java1.8的源码里,有一个 Consumer 接口,其中有个方法,如下:

    default Consumer<T> andThen(Consumer<? super T> after) {
        Objects.requireNonNull(after);
        return (T t) -> { accept(t); after.accept(t); };
    }

接口全部代码如图:

请问:
(1)Java里没有指针操作符,这里的 -> 是什么意思?
(2)return 后面是一个什么样的语法?


这是java8的lambda新特性
http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/Lambda-QuickStart/index.html#section1

  1. ->是lambda的操作符

  2. 利用lamdba表达式简化书写。与以下的写法等价:

public interface MyConsumer {
    public void accept(Object o);

    default MyConsumer andThen(MyConsumer after){
        return new MyConsumer() {
            @Override
            public void accept(Object o) {
                MyConsumer.this.accept(o);
                after.accept(o);
            }
        };
    }
}

这个是Java8的一个新的特性:lambda表达式。可以看这个https://.com/a/1190000003941446

【热门文章】
【热门文章】