Javadoc显示错误"未找到引用"虽然存在参考清晰度

时间:2016-10-13 14:10:47

标签: java-8 javadoc

使用Java8,javadoc检查变得更加严格。常见的解决方案是禁用严格的javadoc检查。不过,我开始尝试修复一些项目中的错误 但有一个错误我没有得到修复。

相应的课程:

package foo;

import com.google.gwt.user.client.ui.TextArea;
[...]

public class MyClass {

  [...]

  /**
   * @see TextArea#getValue()
   */
  public String getValue() {
      [...]
  }

  /**
   * @see TextArea#setValue(String value)
   */
  public void setValue(String value) {
      [...]
  }

  /**
   * @see TextArea#setValue(String, boolean)
   */
  public void setValue(String value, boolean fireEvents) {
      [...]
  }
}

错误信息:

[ERROR] ...\MyClass.java:44: error: reference not found
[ERROR] * @see TextArea#setValue(String value)  
[ERROR] ^
[ERROR] ...\MyClass.java:51: error: reference not found
[ERROR] * @see TextArea#setValue(String, boolean)

错误消息指出它在TextArea - 方法的Javadoc中找不到setValue - 但另一方面在TextArea上找到getValue没有问题} - 方法

据我所知,我关注How to specify a name以及@see reference

任何线索?非常感谢!

2 个答案:

答案 0 :(得分:7)

好的,我现在得到了答案,这有点棘手!

  • TextArea扩展ValueBoxBase<String>
  • TextArea#getValue()没有参数,所以一切都很好
  • 方法TextArea#setValue(String value)TextArea中不存在,而是在超类中定义:ValueBoxBase#setValue(Object, boolean)

但它确实存在!技术上有#34;没有方法setValue(String)。它相当setValue(Object)。 javadoc无法单独解决这个问题,或者它只是一个错误。

因此,我发现解决这个问题的唯一方法就是使用对超类的引用。

/**
 * @see com.google.gwt.user.client.ui.ValueBoxBase#setValue(Object, boolean)
 */

答案 1 :(得分:1)

而不是:

/**
 * @see TextArea#getValue()
 */

尝试:

/**
 * @see com.google.gwt.user.client.ui.TextArea#getValue()
 */