我正在寻找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));
答案 0 :(得分:0)
相关检查是“设置”>“编辑器”>“检查”>“ Java”>“命名约定”>具有大写名称的非常数字段。
以上确实是所有错误。刚好您希望该集不可修改,但是EnumSet.of
已被完整记录为返回可修改集。 “常量”的约定是字段本身是常量,而不是引用的对象(例如,比较使用LOGGER作为字段名称:记录器引用是常量,但可以修改记录器实例)。 Intellij IDEA(据我所知;可能会纠正)没有检查使用大写的字段名作为可修改对象。
答案 1 :(得分:0)