10

作为我的程序的常规静态分析的一部分,我想检查类是否可能具有健全的toString()方法。可能不是每个类都实现它们,但也许没有可实例化Object的具体类使用toString().

是否有一个 lint 工具包可以检查这个?我目前使用的是 FindBugs 和 CheckStyle;我还没有找到一种明显的方法来检查使用其中任何一个。我也在考虑将 PMD 添加到我的 lint 套件中,并且也会对 Sonar 中的某些内容持开放态度。所以我更愿意使用工具箱中已有的工具来完成,但如果我需要添加另一个工具,我会考虑它。

4

1 回答 1

4

您可以使用 Checkstyle Regexp检查执行此操作:

<module name="Regexp">
    <property name="format" value="public\s+String\s+toString\s*()"/>
    <property name="message" value="All classes must implement toString()"/>
    <property name="ignoreComments" value="true"/>
</module>

这甚至可以将注释掉的toString()方法识别为不存在。我使用 Checkstyle 5.6 和 eclipse-cs 进行了尝试,但它也应该适用于早期版本。

于 2013-03-13T14:33:48.297 回答