Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
Rxjava lambda表达式_Java_Android_Rx Java - Fatal编程技术网

Rxjava lambda表达式

Rxjava lambda表达式,java,android,rx-java,Java,Android,Rx Java,我目前正在学习lambda表达式,有一个关于RxJava的问题。我认为可以使用lambda表达式,这样就不必创建匿名类,并且只有当接口有一个抽象方法时才能使用它们。现在根据observer上的文档,它是一个接口。那么,如何在这样一个接口中实现两个lambda表达式呢 Observable.<User>create(subscriber -> { User updatedUser = userService.updateuser(usermapper.userdtot

我目前正在学习lambda表达式,有一个关于RxJava的问题。我认为可以使用lambda表达式,这样就不必创建匿名类,并且只有当接口有一个抽象方法时才能使用它们。现在根据observer上的文档,它是一个接口。那么,如何在这样一个接口中实现两个lambda表达式呢

 Observable.<User>create(subscriber -> {

    User updatedUser = userService.updateuser(usermapper.userdtotoentity(user));
    subscriber.onNext(updatedUser);

}).subscribe(

     user -> {
       if (user != null) {
          response.resume(user);
      } else {
        response.resume(Response.status(Status.NOT_FOUND).build());
      }
    }, 

     error -> {
        logger.debug("User with email_id:" + email_id + " is not present");
        response.resume(error);
     }
 );
Observable.create(订户->{
User updateuser=userService.updateuser(usermapper.userdtotoentity(User));
subscriber.onNext(updateuser);
}).订阅(
用户->{
如果(用户!=null){
回复。简历(用户);
}否则{
response.resume(response.status(status.NOT_FOUND.build());
}
}, 
错误->{
logger.debug(“具有电子邮件id的用户:+电子邮件id+”不存在”);
回复。恢复(错误);
}
);

您使用的
Observable.subscribe
方法接受两个参数,这两个参数都是功能接口类型。因此,可以将lambda表达式作为两者的值传递

如果您觉得这会使代码更清晰,可以提取传递给局部变量的参数:

Action1 onNext = user -> { .... };

Action1 onError = error -> { .... };

Observable.<User>create(subscriber -> {....}).subscribe(onNext, onError);
action1onnext=user->{….};
Action1 onError=error->{….};
创建(订户->{..}).subscribe(onNext,onError);