gpt4 book ai didi

java - Intellij静态最终集合检查

转载 作者:太空宇宙 更新时间:2023-11-04 10:10:25 25 4
gpt4 key购买 nike

我寻找 IntelliJ 检查,但找不到。

如果你看下面的代码片段,它应该是一个常量,但它不是不可变的。

private static final Set<MyEventType> TYPES = EnumSet.of(MyEventType.APPROVED,MyEventType.REJECTED); 

执行以下操作是完全有效的。

TYPES.add(MyEventType.CANCELED);

那么是否有一个 IntelliJ 检查会向 mi 发出警告,表明我的集合不是一成不变的。通常这就是您想要的静态最终字段。

这将是正确的代码:

private static final Set<MyEventType> TYPES =  Collections.unmodifiableSet(EnumSet.of(MyEventType.APPROVED,MyEventType.REJECTED)); 

最佳答案

相关检查是“设置”>“编辑器”>“检查”>“Java”>“命名约定”>“具有大写名称的非常​​量字段”。

这确实是上面的错误所在。只是碰巧您希望该集合不可修改,但 EnumSet.of 已完整记录以返回可修改的集合。 “常量”的约定是字段本身是常量,而不是引用的对象(例如,比较使用 LOGGER 作为字段名称:记录器引用是常量,但记录器实例可以修改)。 Intellij IDEA 没有(据我所知;我可能会被纠正)对可修改对象使用大写字段名称进行检查。

关于java - Intellij静态最终集合检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52425227/

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