Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
返回参数在Java8中是如何工作的?_Java_Lambda_Java 8 - Fatal编程技术网

返回参数在Java8中是如何工作的?

返回参数在Java8中是如何工作的?,java,lambda,java-8,Java,Lambda,Java 8,我不熟悉Java8 任何人都可以在下面的代码片段中共享returnargs返回的内容吗?在Java7中,理解实际发生的事情是什么样子的 public ApplicationRunner initializeConnection( RsvpsWebSocketHandler rsvpsWebSocketHandler) { return args -> { WebSocketClient rsvpsSocketClient

我不熟悉Java8

任何人都可以在下面的代码片段中共享
returnargs
返回的内容吗?在Java7中,理解实际发生的事情是什么样子的

public ApplicationRunner initializeConnection(
        RsvpsWebSocketHandler rsvpsWebSocketHandler) {
           return args -> {
               WebSocketClient rsvpsSocketClient = new StandardWebSocketClient();

               rsvpsSocketClient.doHandshake(
                   rsvpsWebSocketHandler, MEETUP_RSVPS_ENDPOINT);           
           };
       }

这是一个
lambda
,它只是一个匿名类的简写初始化。 在
Java1.7
中,它看起来像:

return new ApplicationRunner() {
            @Override
            public void run(ApplicationArguments args) throws Exception {
                WebSocketClient rsvpsSocketClient = new StandardWebSocketClient();

                rsvpsSocketClient.doHandshake(rsvpsWebSocketHandler, MEETUP_RSVPS_ENDPOINT);
            }
        };

你知道a是什么吗?@Abra OP提到了对Java8是新手。OP很可能不知道什么是
lambda
。您必须阅读整个语句,从
return
到相应的
。语句不是
returnargs
,而是
returnargs->{…}
@Holger,它如何证明“return args->{…};”是ApplicationRunner的run方法的实现?其次,“return args”是否返回实现ApplicationRunner的匿名类的实例?
args->{…}
将计算为
ApplicationRunner
的实例。但是为什么不按照链接阅读呢?那么在1.8版本中,“ApplicationArguments args”在哪里传递?因为
run
ApplicationRunner
的唯一方法,您可以通过简单地定义该方法来实例化匿名类。
lambda
语法假定所有方法参数都位于
->
标记的左侧。欲了解更多详情,请阅读。