convertir a lambda de rx java expresión

He comenzado a grok en retrolambda y rxjava. Algunas expresiones i'v convertido por mí mismo, pero algunos de ellos no puedo convertir. He añadido retrolambda a mi proyecto.Aquí hay ejemplos

public Observable<ImmutableList<Repository>> getUsersRepositories() { return githubApiService.getUsersRepositories(user.login) .map(repositoryResponses -> { final ImmutableList.Builder<Repository> listBuilder = ImmutableList.builder(); for (RepositoryResponse repositoryResponse : repositoryResponses) { Repository repository = new Repository(); repository.id = repositoryResponse.id; repository.name = repositoryResponse.name; repository.url = repositoryResponse.url; listBuilder.add(repository); } return listBuilder.build(); }) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()); } 

Pero no sé cómo convertir esta paz de código:

 obs.subscribe(new Observer<List<Integer>>() { public void onCompleted() { System.out.println("completed"); } public void onError(Throwable e) { System.out.println("failure"); } public void onNext(List<Integer> value) { System.out.println("onnext=" + value); } }); 

Lambda es una función anónima y estás creando una clase anónima, similar pero diferente.

La primera es una Lambda: .map(repositoryResponses -> {...} , ¿qué quieres cambiar más? La segunda parte es un "código de bloque" para que no puedas reducirlo más.

En segundo lugar usted no puede convertirlo porque no es una función.

Creo que quieres hacer algo como esto:

 obs.subscribe( (List<Integer> value) -> System.out.println("onnext=" + value), (Throwable e) -> System.out.println("failure"), ()-> System.out.println("completed")); 

Puedes consultar este blog y este ejemplo en GitHub .

He encontrado la manera de resolverlo. Aquí está el código antes de la conversión

  repositoriesManager.getUsersRepositories().subscribe(new SimpleObserver<ImmutableList<Repository>>() { @Override public void onNext(ImmutableList<Repository> repositories) { repositoriesListActivity.showLoading(false); repositoriesListActivity.setRepositories(repositories); } @Override public void onError(Throwable e) { repositoriesListActivity.showLoading(false); } }); 

después de la conversión

  repositoriesManager.getUsersRepositories().subscribe(repositories -> { repositoriesListActivity.showLoading(false); repositoriesListActivity.setRepositories(repositories); },throwable -> { repositoriesListActivity.showLoading(false); }); 
  • Obtención de información de encabezado con RXJava y Retrofit
  • ¿Cómo esperar múltiples llamadas asincrales anidadas usando RxJava-Android?
  • Uso de Mockito con Retrofit 2.0
  • La llamada onNext de PublishSubject en un hilo diferente después de actualizar a Retrofit 2.0
  • ¿Cuál es la manera correcta de burlarse de un RxJava Observable
  • RxJava Android: cargar datos de caché en los subprocesos adecuados
  • ¿Dónde se puede encontrar AndroidObservable.fromBroadcast ahora?
  • InterruptedIOException al usar Retrofit2 con rx cuando retryOn
  • Combine RxTextView Observable y Retrofit Observable
  • MVP de Android con RxAndroid + Retrofit
  • Robolectric + rxJava + retrofit Segunda llamada lanza java.io.InterruptedIOException
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.