Я пытаюсь создать SecureDataContainer с таким определением HashMap:
HashMap: ()>
Где KeyCouple - это определенный мной класс, который содержит пару для доступа к вектору, связанному с этой парой.
Теперь, когда я создаю пару HashMap в этом методе
private Map<KeyCouple,Vector<E>> DBUsers;
public void createUser(String Id, String passw) throws
UserAlreadyPresent {
if(Id.isEmpty() || passw.isEmpty()) throw new IllegalArgumentException();
if(existsUser(Id)) throw new UserAlreadyPresent(Id);
KeyCouple u = new KeyCouple(Id, passw);
DBUsers.put(u, new Vector<>());
}
Теперь в основном классе я запускаю следующий код:
private static void testContainer(SecureDataContainer<String> container){
try {
container.createUser("Name","pwd");
} catch (UserAlreadyPresent e) {
System.out.println("User already present");
}
...
Создать пользователя «Имя» с паролем «pwd».
Но когда я помещаю что-то в вектор, связанный с парой, созданной с помощью моего метода «put»:
public boolean put(String Owner, String passw, E data) throws NoUserException {
if(Owner == null || passw == null || data == null) throw new NullPointerException();
if(Owner.isEmpty() || passw.isEmpty()) throw new IllegalArgumentException();
KeyCouple user = new KeyCouple(Owner,passw);
if(DBUsers.containsKey(user)){
Vector<E> aux = DBUsers.get(user);
return aux.add(data);
}else{
throw new NoUserException("No user");
}
}
В основном классе я вызываю метод:
try {
container.put("Name", "pwd", someData of type E);
} catch (NoUserException e){
abort("no user");
}
и он прерывается в каждом случае, даже в ветви catch и печатая «no user».
Что это значит?