有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java RxJava 2“Hello World”不打印任何内容

我对RxJava(以及一般的反应式编程)是完全陌生的。因此,我决定写一个简单的程序来掌握一些基本概念。这是一个相当基本的程序,应该打印一个字符串值。不幸的是,它根本不打印任何内容,甚至我可能会发现一些错误。我试图调试它,但似乎整个事情都无法启动

哪一个可能是错的?任何帮助都将不胜感激。这就是代码:

public class Main {
public static void main(String[] args) {

    checkForNewString();
}

public static Completable checkForNewString() {
    return Completable.create(emitter -> {
        captureString()
        .doOnSuccess(s -> System.out.println(s))
        .doOnError(throwable -> emitter.onError(new RuntimeException("Error")))
        .subscribe();
    })
    .subscribeOn(Schedulers.newThread());
}

public static Single<String> captureString() {
   return Single.create(emitter -> {
       String test = generateString();
       emitter.onSuccess(test);
   });
}

public static String generateString() {
    return "Test";
}

}


共 (1) 个答案

  1. # 1 楼答案

    结果证明我不需要那个可观察的。代码如下:

    public class Main {
    public static void main(String[] args) {
        checkForNewString();
    }
    
    
    public static void checkForNewString() {
        captureString()
           .doOnSuccess(s -> System.out.println(s))
           .subscribe();
    }
    
    public static Single<String> captureString() {
       return Single.create(emitter -> {
           String test = generateString();
           emitter.onSuccess(test);
       });
    }
    
    public static String generateString() {
        return "Test";
    }
    

    }