Java 来自rx链的方法中的返回值

Java 来自rx链的方法中的返回值,java,rx-java,Java,Rx Java,我有一个函数,传递一个字符串返回另一个字符串。但我的问题是,使用RxJava我不知道如何返回字符串值 私有无效校验字符串值{ 如果getGenderValuevalue.equalsmale{ //做点什么 } } 私有字符串getGenderValueString值{ findGenderValueUseCase .setTypesomehting .SetLanguage语言 .SetCountryID .setValuevalue .可观察 .ComposeBindentileventDe

我有一个函数,传递一个字符串返回另一个字符串。但我的问题是,使用RxJava我不知道如何返回字符串值

私有无效校验字符串值{ 如果getGenderValuevalue.equalsmale{ //做点什么 } } 私有字符串getGenderValueString值{ findGenderValueUseCase .setTypesomehting .SetLanguage语言 .SetCountryID .setValuevalue .可观察 .ComposeBindentileventDestroyView .订阅新的新闻订阅者; }
您可以将方法更改为:

        private void check(String value) {
              findGenderValueUseCase
                    .setType("somehting")
                    .setLanguage("language")
                    .setCountry("countryid")
                    .setValue(value)
                    .asObservable()
                    .compose(bindUntilEventDestroyView())
                    .subscribe(value ->
                        if (getGenderValue(value).equals("male")) {
                         //do somehting
                        }
                    );
        }
但请记住,因为它是可观察的,所以对于每个发出的值,都会执行dosomething

或者,如果您希望以阻塞方式实现它:

        private void check(String value) {
          if (getGenderValue(value).equals("male")) {
           //do somehting
          }
        }

        private String getGenderValue(String value) {
              return findGenderValueUseCase
                    .setType("somehting")
                    .setLanguage("language")
                    .setCountry("countryid")
                    .setValue(value)
                    .asObservable()
                    .compose(bindUntilEventDestroyView())
                    .blockingFirst(); // here we only return the first value
        }
检查此项以了解哪一项是最好的