Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >Checkstyle不允许特定的枚举常量

Checkstyle不允许特定的枚举常量
EN

Stack Overflow用户
提问于 2022-01-21 04:26:47
回答 1查看 93关注 0票数 1

是否有一种方法可以使用校验样式来不允许使用特定的枚举值(除了试图用正则表达式捕获它)?

我想阻止javax.persistence.CascadeType.ALL的使用,但似乎只能找到防止使用整个javax.persistence.CascadeType枚举的选项。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-29 23:34:05

这不是那么容易,但有几种方法(或解决办法?)

  1. 您可以使用MatchXPathCheck报告与CascadeType.ALL的任何用法的冲突。配置如下所示
代码语言:javascript
代码运行次数:0
复制
<!-- under TreeWalker -->
<module name="MatchXpath">
    <property name="query" value="//DOT[count(./IDENT) = 2 and ./*[1][@text = 'CascadeType'] and ./*[2][@text = 'ALL']]"/>
    <message key="matchxpath.match"
             value="Do not use Cascade.ALL"/>
</module>

它将报告违反CascadeType.ALL的任何使用,不包括进口。但是,如果您直接使用静态导入和常量,它将无法工作。

代码语言:javascript
代码运行次数:0
复制
import static javax.persistence.CascadeType.ALL;

Object a = ALL; // we wont catch it
  1. 其他方式是其他xpath,但禁止使用ALL
代码语言:javascript
代码运行次数:0
复制
<!-- under TreeWalker -->
<module name="MatchXpath">
    <property name="query" value="//IDENT[@text = 'ALL']"/>
    <message key="matchxpath.match"
        value="Do not use CascadeType.ALL"/>
</module>

这将捕获所有的用法(导入也是如此),但是如果您有其他名为ALL的常量,则会产生假阳性,因为这里我们没有指定它的类型。

  1. 要禁止静态导入,可以使用IllegalImportCheck。它将报告类似案件的违规行为。
代码语言:javascript
代码运行次数:0
复制
import static javax.persistence.CascadeType.ALL;

但如果有明星进口的话,这是行不通的。

您还可以尝试组合这些方法或创建更好的xpath,因为上面的只是一个草图。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70801277

复制
相关文章
常量or枚举的取舍
例如这里org.springframework.http.HttpStatus.OK包含的至少有
阿超
2022/08/16
4250
常量or枚举的取舍
[Objective-C] 常量和枚举
#define宏定义 #define是一条预编译指令, 编译器在编译阶段前期会将所有使用到宏的地方简单地进行替换.
wOw
2018/09/18
5300
Java中怎样由枚举常量的ordinal值获得枚举常量对象
Java1.5提供了关键字enum,能够通过该关键字方便得定义自己须要的枚举类型,比方
全栈程序员站长
2022/07/14
1.8K0
常量接口 vs 常量类 vs 枚举区别
程序员 NEO
2023/10/12
1960
硬编码,常量,枚举类
假如有一笔业务需要审核,审核状态分:未审核,审核中,审核通过,审核不通过。我们在程序里是否可以直接这么写: if(state==1){//1代表未操作 //操作 }else{ //...... } 将状态标识直接写在代码里面(硬编码),只图一时方便,却是后患无穷,如果有一天你需要修改状态标识,用0代表未审核而不是1,你不得不将所有与该标识相关的代码都找出来一个个改,另外,在编码过程中,标识输入错误的概率是比较高的,一不小心把0输入成了10,虽然不会提示任何编译错误,但运行结果将
java达人
2018/01/31
1.7K0
java枚举类型enum用法(java定义枚举常量类)
//自定义枚举类 class Season{ //1.声明Season对象的属性:private final修饰 private final String seasonName; private final String seasonDesc;
全栈程序员站长
2022/07/31
3.7K0
checkstyle
这个世界上没有无用的齿轮,也只有齿轮本身能决定自己的用途。——《嫌疑犯X的献身》 可以安装idea插件checkstyle进行代码审查 可以呼出对应的工具界面,选择规范类型 也可以自定义审查规则
阿超
2022/12/02
1990
checkstyle使用_idea checkstyle
Checkstyle是一款检查java程序代码样式的工具,可以有效的帮助我们检视代码以便更好的遵循代码编写标准,特别适用于小组开发时彼此间的样式规范和统一。Checkstyle提供了高可配置性,以便适用于各种代码规范,所以除了可以使用它提供的sun的代码标准外,你也可以定制自己的标准。我们可以在eclipse中安装checkstyle的插件,来方便我们的使用。
全栈程序员站长
2022/09/20
1.2K0
是枚举?还是常量?其实很好选择!
2、枚举实现了Comparable及Serializable接口,因此可以进行比较及序列化等操作,类型定义如下:
WindWant
2020/09/10
2.4K0
Checkstyle提示
解决方法:在方法前得注释中添加这样一行:* @throws Exception if has error(异常说明)
麦克劳林
2018/09/11
1.8K0
RPC接口不允许使用枚举类型。为什么?
RPC是Remote Procedure Call的缩写。中文名是:远程服务调用。简单来说就是一个节点提供服务(称为服务端),一个节点消费服务(客户端)。
玖柒的小窝
2021/12/11
1.1K0
RPC接口不允许使用枚举类型。为什么?
EasyC++62,类常量和类枚举
比如说我们在类当中定义一个数组,希望可以定义一个常量,用来初始化数组的长度。既然是用来初始化数组长度的,那么这个值自然也不会改变,我们定义成const是否可行呢?比如这样:
TechFlow-承志
2022/08/26
2940
EasyC++62,类常量和类枚举
TypeScript-运行时和常量枚举
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗
杨不易呀
2023/09/28
1940
【小家java】java中维护常量使用常量类?接口?还是枚举呢?
在编码过程中,避免不了维护一些常量。而通过这么多的项目中发现,使用方式都不尽相同。有用常量类的、有用接口的、有用枚举的,因此本文针对于常量的管理做一些讨论
YourBatman
2019/09/03
4.1K0
【初识Go】| Day3 变量、常量、枚举(iota)
变量,计算机语言能存储计算结果或表示值的抽象概念。可以通过变量名访问,变量名由字母、数字、下划线组成,其中首个字符不能为数字
yussuy
2020/12/16
4540
【初识Go】| Day3 变量、常量、枚举(iota)
Go 语言基础入门教程 —— 常量和枚举
在 Go 语言中,常量是指编译期间就已知且不可改变的值,常量只可以是数值类型(包括整型、 浮点型和复数类型)、布尔类型、字符串类型等标量类型。和 PHP 一样,在 Go 语言中,我们可以通过 const 关键字来定义常量(遵循 C 语言的约定)。
学院君
2019/08/08
5910
IDEA checkStyle
打开IDEA安装路径下的 idea64.exe.vmoptions 末尾处 添加 -Duser.language=en
qubianzhong
2018/09/19
1.5K0
IDEA checkStyle
CheckStyle学习笔记
CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱出来.
写一点笔记
2020/08/25
1.7K0
CheckStyle学习笔记
第三章 Go常量、枚举、数学运算
相对于变量,常量是恒定不变的值,比如:数学自然常数e,圆周率pi。常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。
宇宙之一粟
2020/10/26
4400
第三章 Go常量、枚举、数学运算
给项目添加chechstyle
收到个pr:https://gitee.com/dromara/stream-query/pulls/301 给项目添加了checkstyle,非常的nice 主要是配置了maven插件 <!-- 公共checkstyle标准配置,可以在子模块中覆盖,修改自定义选项 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <ver
阿超
2023/04/06
5830

相似问题

如何枚举特定类型的常量

24

枚举常量特定初始化

11

枚举和泛型常量特定方法

50

Checkstyle建议不可能的常量排序。

25

如何注释枚举以使checkstyle变得愉快?

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档