我想要一个规则来检查字段和类是否在实践中使用 java 并发进行了正确的注释:http: //mvnrepository.com/artifact/net.jcip/jcip-annotations
字段必须用@GuardedBy 注释,类必须用@Immutable、@ThreadSafe 或@NotThreadSafe 之一注释。
我目前应用了一条规则,它确保 Spring Dao 类使用 @Repository 而不是 @Service 或 @Component 进行注释。
<module name="Regexp">
<property name="format"
value="(@Component|@Service)(.*[\n])*.*class.*Dao.*\{" />
<property name="message"
value="Daos sollten lieber mit @Repository annotiert werden." />
<property name="illegalPattern" value="true" />
</module>
这种方法的问题是,我只能检查一些注释并告诉我应该更好地使用另一个注释。这对 jcip 注释检查没有帮助,因为我无法检查“不存在特定注释”。
对于初学者来说,如果有人知道如何将上面的 Dao 检查转换为仅确保 @Repository 存在于名称以 Dao 结尾的类上的检查,那将是很酷的。然后可以使用该模式来开发 jcip 注释检查。
或者也许不是尝试转换正则表达式检查,也许有一些方法可以通过 checkstyle 的令牌支持来实现 jcip 规则?这可能会使规则变得健壮。
无论如何,我想知道如何通过 checkstyle 确保特定的注释必须出现在特定的元素上。希望有人知道这一点。:)