看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

  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://segmentfault.com/a/1190000003941446

以上是 看Java1.8自带的源代码时,看到了 -&gt; 符号,这个符号是什么意思? 的全部内容, 来源链接: utcz.com/p/174119.html

回到顶部