IntelliJ没有看到错误,但是在使用RX和Lambda时编译器会看到错误吗?

时间:2019-02-21 17:58:56

标签: java intellij-idea lambda

嗨,我有以下代码...

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编辑器/自动完成功能不认为这是错误。

1 个答案:

答案 0 :(得分:0)

根据上面的评论。需要从IntelliJ 2017升级到至少2018/2019。现在编辑器将其视为错误。