Java checkstyle 让我感到困惑和不知所措。
package pmain;
/**
* Some text here.
*/
public class Main {
}
这就是我所有的代码。Checkstyle在“/**”处显示“第一句话应该以句点结束。”
为什么CheckStyle会产生这个警告?
我需要使用的checkstyle配置是否出了问题?我做错了什么吗?“Some text here”不是第一句话吗?"."不是句号吗?
Java checkstyle 让我感到困惑和不知所措。
package pmain;
/**
* Some text here.
*/
public class Main {
}
这就是我所有的代码。Checkstyle在“/**”处显示“第一句话应该以句点结束。”
为什么CheckStyle会产生这个警告?
我需要使用的checkstyle配置是否出了问题?我做错了什么吗?“Some text here”不是第一句话吗?"."不是句号吗?
第一句话应该以句点结束。
/**
*An abstract class that represents an algorithm.
*
* @author zhangtj
*
* @version 1.0
*/
能够通过。
/**
行上收到警告。checkFirstSentence
,可以是true或false,endOfSentenceFormat
是正则表达式,应匹配句号。但是,如果规则集重新定义了该属性... ;)
进一步阅读
...
<module name="JavadocStyle">
<property name="checkFirstSentence" value="false"/>
</module>
另外,对于我来说,我完全移除了SummaryJavadoc
模块。
在您的checkstyle.xml中关闭此检查。
请参见: http://checkstyle.sourceforge.net/config_javadoc.html#JavadocStyle & http://checkstyle.sourceforge.net/config_javadoc.html#SummaryJavadoc
SummaryJavadoc
不仅仅是一种偏好,实际上它是第二步必须执行的操作,以消除这个句子期间错误。 - gene b.Thin 可能是由于注释或句点后面的空格引起的。
.
相关。要解决此问题,您需要覆盖 period
属性。其默认值为 .
字符。第一句话应以句号结尾。
”警告:<module name="SummaryJavadoc">
<property name="forbiddenSummaryFragments" value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
<property name="period" value=""/>
</module>
如果上述解决方案无效,您可以使用以下备选方案:
覆盖 endOfSentenceFormat
属性的默认值。
默认值:
([.?!:][ \t\n\r\f<])|([.?!:]$)
新值,接受任何数字和字母作为行尾:
([.?!:][ \t\n\r\f<])|([\d\w.?!:]$)
完整的Checkstyle配置:
<module name="JavadocStyle">
<property name="scope" value="public"/>
<property name="checkEmptyJavadoc" value="true"/>
<property name="tokens" value="ANNOTATION_DEF, ANNOTATION_FIELD_DEF, CLASS_DEF, CTOR_DEF, ENUM_DEF, INTERFACE_DEF, METHOD_DEF, PACKAGE_DEF, VARIABLE_DEF"/>
<property name="endOfSentenceFormat" value="([.?!:][ \t\n\r\f<])|([\d\w.?!:]$)"/>
</module>
我使用两行来避免这个警告。例如:
/**
* Let's call this as the first sentence,
* here the second one.
*/