В Netbeans может оказаться полезным создать максимальный размер кучи. Перейдите к Выполнить => Установить конфигурацию проекта => Настроить . В появившемся окне Run перейдите к опции VM Option , заполните -Xms2048m -Xmx2048m
. Это может решить проблему размера кучи.
Вы используете битовые операции. Псевдокод был бы чем-то как:
bool HasPermission(User user, Permission permission) {
return (user.Permission & permission) != 0;
}
void SetPermission(User user, Permission permission) {
user.Permission |= permission;
}
void ClearPermission(User user, Permission permission) {
user.Permission &= ~permission;
}
Разрешение является перечислимым типом, определенным в Вашем сообщении, хотя безотносительно типа это - потребности быть основанным на подобном целому числу типе. То же относится к Пользователю. Поле Permission.
Если те операторы (и, | =, и &=) не имеют смысла Вам, то считанный на битовых операциях (поразрядно И и битовое "ИЛИ").
На самом деле это - то, как мы определяем полномочия в рамках довольно большого веб-приложения, для которого я являюсь DBA.
Если Вы соберетесь сделать что-то вроде этого, то Вы действительно извлечете выгоду из наличия таблицы чисел. Это сделает Ваши вычисления намного быстрее.
Основная установка включает следующие таблицы:
Сначала мы определяем, зарегистрирован ли пользователь. Если они не, мы возвращаем анонимную авторизацию для точки безопасности.
Затем мы определяем, является ли пользователь членом каких-либо групп, связанных с точкой безопасности через простое EXISTS
использование a JOIN
. Если они не, мы возвращаем значение, связанное с аутентифицируемым пользователем. Большинство анонимных и аутентифицируемых значений по умолчанию установлено на 1 в нашей системе, потому что мы требуем, чтобы Вы принадлежали определенным группам.
Примечание: Если анонимный пользователь не получает доступ, интерфейс бросает их к журналу в поле, чтобы позволить им войти в систему и попробовать еще раз.
Если пользователь является членом одной или нескольких групп, то мы выбираем отличные значения из таблицы BitMask для каждого из значений, определенных для групп. Например, если бы Вы принадлежали трем группам и имели один уровень авторизации 8, один с 12 и последнее с 36, то наш выбор против таблицы Bit Mask возвратился бы 8, 8 и 4, и 4 и 32 соответственно. Путем выполнения отличного мы получаем номер 4, 8 и 32 который правильно битовые маски к 101 100.
То значение возвращено как пользовательский уровень авторизации и обработано веб-сайтом.
Иметь смысл?