Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top

Вебинар: Стратегия без иллюзий: как превращать цели в результаты - 19.08

menu mobile close menu
Проверка проектов
Дополнительная информация
toggle menu Оглавление

V6136. Values of bit flags are duplicated.

07 Авг 2026

Анализатор обнаружил группу констант, которая выглядит как набор битовых флагов: идущие подряд static final поля, переменные или enum поля, инициализированные целочисленными значениями, которые являются степенями двойки. В такой группе одно из значений повторяется. Скорее всего, это опечатка, допущенная при добавлении нового флага или при копировании соседней строки.

Рассмотрим пример:

public class FilePermission {
  public static final int READ    = 0x01;
  public static final int WRITE   = 0x02;
  public static final int EXECUTE = 0x04;
  public static final int DELETE  = 0x04;  // <=
}

Константы EXECUTE и DELETE разделяют одно и то же значение. Проверка вида (mask & DELETE) != 0 будет истинной для маски, в которой выставлено только право на выполнение, а сброс одного флага приведёт к сбросу второго.

Исправленный вариант:

public class FilePermission {
  public static final int READ    = 0x01;
  public static final int WRITE   = 0x02;
  public static final int EXECUTE = 0x04;
  public static final int DELETE  = 0x08;
}