您好,我有以下代码...
Flowable.fromIterable(records.records())
.flatMap(record -> {
return consume(record);
})
.doOnError(t -> t.printStackTrace()) <--- Compiler complains about this
.onErrorResumeNext(Flowable.empty())
.doOnTerminate(() -> {
...
}).subscribe();
还有……
public abstract Flowable consume(ConsumerRecord<String, String> record);
有了上面的 IntelliJ 不会提示任何错误。但是在我构建代码的那一刻,我得到...
Error:(71, 50) java: cannot find symbol
symbol: method printStackTrace()
location: variable t of type java.lang.Object
如果我把...
public abstract Flowable<?> consume(ConsumerRecord<String, String> record);
然后它构建并运行良好。所以我猜类型信息不知何故丢失了?
更新 该应用程序通过 Intellij 中的 Gradle 运行任务运行。并澄清 IntelliJ 编辑器/自动完成并不认为这是一个错误。
最佳答案
根据上面的评论。需要从 IntelliJ 2017 升级到至少 2018/2019。现在编辑认为这是一个错误。
关于java - IntelliJ 看不到错误,但编译器在使用 RX 和 lambda 时看到错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54813418/