как распечатать тип пользователя из его логина? - PullRequest
0 голосов
/ 15 ноября 2018

Я не могу связать информацию для входа в систему с типом учетной записи, например, я хочу напечатать «Welcome Manager» при вводе имени пользователя и пароля менеджера.

    UserAccount users[] = new UserAccount[3];
    users[0] = UserAccount.createUser("test0", "test0"); <<Username,Pass>>
    users[1] = UserAccount.createUser("test1", "test1");
    users[2] = UserAccount.createUser("test2", "test2");

    personArray = new Person[3]; <<third paramter take UserAccount>>
    personArray[0] = new Manager("Zen","manager@mail.com",users[0],new Date(2/3/2013));
    personArray[1] = new Specialist("Tom","specialist@mail.com",users[1]);
    personArray[2] = new Customer("John","customer@mail.com",users[2],"ny");


    Scanner s = new Scanner(System.in);

    System.out.println("Main menu");
    System.out.print("(1) User login \n(2) new Customer \n(3) Exit \n==> ");
    int inp = s.nextInt();
    switch (inp) {
    case 1: 
        UserAccount loggedUser = UserAccount.login();

        if (loggedUser != null) {
            System.out.println("----------------------\nHello " + loggedUser.getUsername());
            System.out.println("Welcome to the ITS App\n----------------------");
            <<I want to print here the account type>>
        }

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Добавьте это после получения учетной записи пользователя:

 Person person = Arrays.stream(personArray).filter(person -> person.getUser().equals(loggedUser)).findFirst().orElse(null);

    if(person instanceof Manager){
    System.out.println("Welcome Manager");
    }
0 голосов
/ 15 ноября 2018

Если вы можете получить человека, связанного с учетной записью пользователя, вы можете сделать что-то вроде этого

if(person instanceof Manager){
      System.out.println("Welcome Manager");
}

В качестве альтернативы, предполагая, что Person является интерфейсом, вы можете вставить функцию String getType (), которая реализована в каждом классе, который реализует Person, чтобы возвращать String, представляющую тип. Итак, в вашем личном классе у вас будет:

  public String getType();

И тогда в вашем классе менеджера вы бы положили:

  public String getType(){
       return "Manager";
  }

Затем, чтобы распечатать ваше сообщение, вы можете сделать это:

 System.out.println("Welcome "+person.getType());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...