使用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) {
[...]
}
}
Run Code Online (Sandbox Code Playgroud)
并且错误消息:
[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)
Run Code Online (Sandbox Code Playgroud)
该错误消息指出它无法找到TextArea在中的Javadoc setValue-方法-但另一方面没有问题找TextArea的getValue-方法.
有线索吗?非常感谢!
好的,我现在得到了答案,这有点棘手!
TextArea 扩展 ValueBoxBase<String>TextArea#getValue() 没有参数,所以一切都很好TextArea#setValue(String value)不存在TextArea,它在超类中定义:ValueBoxBase#setValue(Object, boolean).但它确实存在!"技术上"没有方法setValue(String).这是相当的setValue(Object).javadoc无法自行解决这个问题,或者只是一个bug.
因此,我发现解决这个问题的唯一方法是使用对超类的引用.
/**
* @see com.google.gwt.user.client.ui.ValueBoxBase#setValue(Object, boolean)
*/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3082 次 |
| 最近记录: |