eclipse不会总是显示javadoc或rxjava2的开放声明Observable(不正常)

时间:2018-04-23 14:21:03

标签: eclipse javadoc eclipse-jdt eclipse-oxygen

Eclipse oxygen3(2018年3月)。 普通的java项目,带有rxjava jar和源码。 .classpath文件:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk18"/>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="lib" path="rxjava-2.1.12.jar" sourcepath="rxjava-2.1.12-sources.jar"/>
    <classpathentry kind="lib" path="reactive-streams-1.0.2.jar"/>
    <classpathentry kind="output" path="output"/>
</classpath>

我可以点击&#34; Observable&#34;,我可以看到来源。 但如果我使用类似的东西:

static void test1() throws InterruptedException {
    //Flowable.range(0, 1000)
    Observable.range(0, 1000)
        .doOnNext(i -> {
            System.out.println(", r"+i);
        })
        .subscribeOn(Schedulers.newThread())
        .observeOn(Schedulers.newThread())
        .doOnNext(i -> {
            System.out.println(", w"+i);
        })
        .subscribeOn(Schedulers.newThread())
        .subscribe( i -> System.out.println(", f"+i));

    Thread.sleep(5000);
}

然后有很多方法没有获得javadoc悬停弹出窗口并且没有ctrl-click打开声明。

.range(),第一个doOnNext(),第一个subscribeOn()和observeOn()不能打开并拥有javadoc但没有工具提示poopup,其他人这样做!第二个doOnNext(),第二个subscribeOn()和最后的subscribe()方法确实显示了javadoc工具提示,可以按住Ctrl键单击。

这让我疯狂......我怎么处理eclipse才能解决这种疯狂问题?你知道为此报告的日食错误吗?

它似乎只发生在rxjava上。当然它是一个IDE错误,但我不能轻易地在其他lib上重现。我以为是因为&#34; Observable&#34;有太多的方法,也许它看不到超过N.但是它确实向我展示了SAME方法的javadoc / opendeclaration(比如doOnNext()),只是因为它在源代码的其他地方...... WTF ?

1 个答案:

答案 0 :(得分:1)

这可能是Eclipse Bug 515758,即RxJava似乎包含一些签名,这些签名打破了选择/解析对该库的引用的用例。解析失败后,该工具不知道应该显示哪个元素javadoc。