идеи по очистке предупреждений с использованием Java-реактивов Один ответ - PullRequest
0 голосов
/ 11 декабря 2018

У меня нет большого опыта работы с io.reactivex, но я давно работаю с Java.

Я изучаю некоторый существующий код, используя io.reactivex, гдеразработчики добавили множество аннотаций «SuppressWarnings».Я предпочитаю не иметь их вообще, даже если я не могу разрешить предупреждение.Я хотел бы посмотреть, можно ли хотя бы некоторые конкретные примеры предупреждений в коде io.reactivex убрать, надеюсь, за счет упрощения кода.

Я привожу здесь выдержку из метода:

        Single<SinglePaymentResponse> singleResponseHolder = Single.zip(vcc3Response, vcc4Response,
                (response1, response2) -> {
                    SinglePaymentResponse singlePaymentResponse = new SinglePaymentResponse();
                    Map<String, ClientResponse<ResponseEntity>> combinePaymentResponse = new HashMap<>();
                    combinePaymentResponse.put("VCC3Response", response1);
                    combinePaymentResponse.put("VCC4Response", response2);
                    singlePaymentResponse.setCombinePaymentResponse(combinePaymentResponse);

                    return singlePaymentResponse;
                });

        Single<SinglePaymentResponse> resp = singleResponseHolder // warning 1
                .doOnSuccess(r -> log.info("CheckoutComponent:Payment Successfully finished validatePaymentInfo"))
                .doOnError(e -> log.error("CheckoutComponent:Payment An ERROR occurred during validatePaymentInfo.", // warning 2
                        e));
        return singleResponseHolder.blockingGet();

В этом блоке кода есть два предупреждения: одно, которое мне дает Eclipse, и другое, которое мне дает SonarQube.

Предупреждение 1 от Eclipse говорит мне, что «resp» никогда не используется.Я, конечно, мог бы удалить переменную, но тогда я делаю вызов, возвращаемое значение которого не используется.

Предупреждение 2 говорит: «Возвращаемое значение io.reactivex.Single.doOnError (Consumer) игнорируется в ...".

Этот на самом деле несколько озадачивает.Из того, что я вижу, возвращаемое значение из "doOnError ()" присваивается "resp" (который затем не используется, но это другая проблема).

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

...