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 ?
答案 0 :(得分:1)
这可能是Eclipse Bug 515758,即RxJava似乎包含一些签名,这些签名打破了选择/解析对该库的引用的用例。解析失败后,该工具不知道应该显示哪个元素javadoc。