В настоящее время у меня есть некоторые объекты User, имеющие тип enum enumUserType, но один из них имеет enumUserType LIBRARIAN. Пользователи, которые являются библиотекарями, должны иметь специальные привилегии, в этом случае у него будет другое меню, к которому он может получить доступ.
То, что я пытался сделать, циклически перебирать список пользователей массива, и если у этого пользователя есть пользовательский тип библиотекаря, тогда возвращать true, если это что-то еще, возвращать false.
После некоторого тестирования кажется, что даже если только один из моих объектов является библиотекарем, тогда весь метод вернет true. Тогда я не могу привести различные типы пользователей по разным путям меню.
Мой первый объект не библиотекарь, а второй.
public boolean verifyLibrarian() {
for (User s : users) {
//if just one of my objects is librarian it will return true.
if (s.getUserType() == User.enumUserType.LIBRARIAN) {
return true;
}
else
{
return false;
}
}
throw new IllegalArgumentException("Username or password is
incorrect");
}
Вот мой цикл while, а также:
while(exit == 0)
{
Scanner scanner = new Scanner(System.in);
System.out.println("Enter your user name");
String userName = scanner.nextLine();
System.out.println("Enter your password name");
String passWord = scanner.nextLine();
if (library.verifyLogin(userName, passWord)== true && library.verifyLibrarian() != true)
{
this.currentLoginUser = userName;
mainMenuAfterLogin();
}
//because my method is returning true, even logged in non librarians
//will get lead down to this menu
else if(library.verifyLogin(userName, passWord) == true &&
library.verifyLibrarian() == true)
{
this.currentLoginUser = userName;
librarianMenuEditBook();
}
}
Дайте мне знать, если вам нужна дополнительная информация.
Спасибо за помощь.