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