Добрый день есть функция rxJava
и есть метод flatMap
:
@Override
public Observable<AuthorizationEntity> confirmVerificationCode(String email,int verificationCode) {
return restClient.getVerificationApi(email,verificationCode)
.flatMap((Function<Response<ResponseBody>, Observable<AuthorizationEntity>>) responseBodyResponse -> {
Gson gson = new Gson();
AuthorizationEntity authorizationEntity = gson.fromJson(responseBodyResponse.body().string(), AuthorizationEntity.class);
authorizationEntity.setToken(responseBodyResponse.headers().get("MPOS_AUTH_TOKEN"));
return Observable.fromArray(authorizationEntity);
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
как из этого flatMap
вынесни ламбда в отдельный метод и использовать конструкцию вида this::method
?
Все очень просто:
выносите лямбду в отдельный метод с соотвествующей сигнатурой
private static Observable<AuthorizationEntity> parse(Response<ResponseBody> responseBodyResponse)
в местах, где использовалась лямбда, пишите следующее:
.flatMap(MySuperClass::parse)
ps если в сигнатуре убрать static
, то обращение к методу будет происходить через this
, и вызов соответственно будет выглядеть так:
.flatMap(this::parse)
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Как получить никальное id для device-a которое не будет изменяться даже после перепрошивки ?в котором я могу быть уверен на все 100 %это MacAdress,Imei...
Который раз уже пересоздаю приложение, появляется одно и то
Создал BitronixTransactionManager, чтобы делать распределенные транзакции в несколько БДКогда делаю insert в две БД, то все работает
как можно проверить выбран ли какой-нибудь radioButton в radioGroup при нажатии кнопки