Page 115 - 4836
P. 115
стовпця category на рядок "user", а значення 1 на рядок
"admin". Справа в тому, що залежно від категорії користувача
(яка в БД закодована числом) ми повинні створити або об'єкт
класу User, або об'єкт похідного від нього класу Admin.
Наш метод буде виглядати таким чином. (Набирати
його немає сенсу, просто постарайтеся розібратися. І стежте за
дужками !)
private User findUser(String login, string password) {
Map userData = getNextUser();
while (userData != null) {
if
(((String)UserData.get("login")).equals(login) &&
((String)UserData.get("password")).equals(passwor
d)) {
if
(((String)UserData.get("category")).equals("user"))
return new
User((String)UserData.get("name"));
if
(((String)UserData.get("category")).equals("admin"
))
return new
Admin((String)UserData.get("name"));
}
}
userData = getNextUser();
} return null;
}
Зверніть увагу, як кожен раз, звертаючись до
асоціативного масиву userData методом get() і одержуючи
значення, асоційоване з потрібним нам ключем, ми приводимо
його до типу рядок.
Зверніть увагу на організацію циклу while: ми
викликаємо метод getNextUser( ) доки він не поверне нам
113