Я искал проверку IntelliJ, но не смог ее найти.
Если вы возьмете фрагмент кода ниже, он должен быть константой, но он не является неизменным.
private static final Set<MyEventType> TYPES = EnumSet.of(MyEventType.APPROVED,MyEventType.REJECTED);
вполне допустимо сделать следующее.
TYPES.add(MyEventType.CANCELED);
Так есть проверка IntelliJ, которая дала бы мне предупреждение, что моя коллекция не является неизменной.Обычно это то, что вы хотите со статическими конечными полями.
Это будет правильный код:
private static final Set<MyEventType> TYPES = Collections.unmodifiableSet(EnumSet.of(MyEventType.APPROVED,MyEventType.REJECTED));