“第一句应以句号结束。”

时间:2012-10-29 21:11:50

标签: java checkstyle

Java checkstyle使我感到困惑和困惑。

package pmain;

/**
 * Some text here.
 */

public class Main {

}

这就是我所拥有的所有代码。 Checkstyle显示“第一句应以句号结束”。在“/**”。

为什么CheckStyle产生此警告?

我需要使用的checkstyle配置是否已损坏?难道我做错了什么? “这里有些文字”不是第一句话吗?是“。”不是一个时期?

6 个答案:

答案 0 :(得分:9)

第一句应以点结尾。

/**
 *An abstract class that represents an algorithm.
 *
 * @author zhangtj
 *
 * @version 1.0
*/

会通过。

答案 1 :(得分:6)

刚刚在我的机器上进行了测试,实际上无法重现:我没有在句子末尾有一个圆点的警告。但是一旦我将其删除(并再次运行checkstyle),规则就会被正确触发,我会在/**行上收到警告。

评论后的空白行没有区别。

仔细检查点是否真的是一个点,而不是“看起来”像点的其他字符。并且在您更改文件后仔细检查是否确实重新运行了checkstyle。它不会自动执行检查。


也许有人玩过checkstyle设置。实际上有两个属性可以控制这个规则:checkFirstSentence,它是true或false,endOfSentenceFormat是一个正则表达式,应该匹配句点。但是,如果规则集重新定义了该属性......;)

进一步阅读

答案 2 :(得分:5)

这让我恼火。要删除此添加:

...

<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

答案 3 :(得分:2)

评论结束后的空格可能会导致“瘦”或“。”

答案 4 :(得分:1)

您的问题与该行末尾缺少的.有关。要解决此问题,您需要覆盖period属性。其默认值为.字符。

根据最新的Checkstyle documentation,建议使用以下配置来摆脱“ First sentence should end with a 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&lt;])|([.?!:]$)

新值,在行尾接受任何数字和字母:

([.?!:][ \t\n\r\f&lt;])|([\d\w.?!:]$)

完成Checksytle配置:

<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&lt;])|([\d\w.?!:]$)"/>
</module>

答案 5 :(得分:0)

我使用2行来避免此警告。例如:

/**
 * Let's call this as the first sentence,
 * here the second one.
*/