2016-05-19 5 views
0

Может ли один помочь мне с конвертированием этот кусок кода в лямбда-выражения, Я поражен с этимпревращение выражение лямбда

Observable.create(new OnSubscribe<User>() { 
     @Override 
     public void call(Subscriber<? super User> arg0) { 
      User updatedUser = userService.updateuser(usermapper.userdtotoentity(user)); 
      arg0.onNext(updatedUser); 
     } 
    }).subscribe(new Action1<User>() { 
     @Override 
     public void call(User user) { 
      if (user != null) { 
       response.resume(user); 
      } else 
       response.resume(Response.status(Status.NOT_FOUND).build()); 
     } 
    }, new Action1<Throwable>() { 
     @Override 
     public void call(Throwable t) { 
      logger.debug("User with email_id:" + email_id + " is not present"); 
      response.resume(t); 
     } 
    }); 
+0

Почему ваш язь не сделает это за вас? – zella

+0

Нет, я так не думаю, есть ли способ сделать это в идее? – Sanket

ответ

3
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); 
     } 
    ); 
+0

Я получаю ошибку для этого, как на 4-й строке: пользовательский параметр выражения выражения Lambda не может повторно использовать другую локальную переменную, определенную в охватывающей области. – Sanket

+0

не хватает} –

+0

где добавить отсутствующий}? – Sanket

Смежные вопросы