gpt4 book ai didi

java - PMD查找注释并检查是否有属性

转载 作者:行者123 更新时间:2023-11-30 07:06:04 31 4
gpt4 key购买 nike

如何编写 PMD 规则来搜索 javax.validation.constraints.NotNull 注释并验证它是否具有消息属性?

不好:

@NotNull
private int value;

@NotNull(message = "value cannot be null.")
private int value;

我主要关心的是这个注释基本上可以放在任何地方

@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })

最佳答案

以下是用于查找不带消息的 NotNull 注释的 xpath 查询://注解[*/Name/@Image = 'NotNull' and not(.//MemberValuePair/@Image = 'message')]

我已经测试了除 ANNOTATION_TYPE 之外的所有情况,我不确定如何在 PMD 构建器应用中进行测试。

如果你想要所有javax.validation.constraints我已经想出了这个://注解[*/Name/@Image = tokenize(replace(string-join(//ImportDeclaration/Name/@Image[starts-with(., "javax.validation.constraints.")], "| ")、"javax.validation.constraints."、"")、'[|]') 和 not(.//MemberValuePair/@Image = 'message')]

因此:获取所有以 javax.validation.constraints. 开头的导入,使用 string-join 转换为字符串,删除 javax.validation.constraints。 使用 replace 并使用 tokenize 拆分回一组值。

关于java - PMD查找注释并检查是否有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40111626/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com