Сделать ввод String экземпляром объекта - PullRequest
0 голосов
/ 28 мая 2019
user1.subscribe();

user1 относится к классу User, я смотрю, как использовать Scanner для получения пользовательского ввода. Поэтому при запросе имени пользователя с помощью Scanner, например user2, это можно использовать для вызова user2.subscribe ();

Использован вход строки сканера, но невозможно преобразовать в объект

User userID;
Scanner input = new Scanner(System.in);
userID = input.next();

Несоответствие типов: невозможно преобразовать из строки в пользовательскую

Таким образом, пользователь был добавлен следующим образом

User user1 = new User("user1", "James Smith", "915661829");

В основном методе я могу вызвать user1.subscribe (), чтобы подписать пользователя. Я пытаюсь запросить ввод, например, "user2", который вызовет user2.subscribe ().

Сканер запросит имя пользователя, который хочет подписаться.

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Вы должны сделать поле, чтобы принимать ввод из командной строки. Как то так.

class User {
    private String id;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                '}';
    }
}

А затем примите ввод в поле, и вам нужно создать экземпляр объекта перед его заполнением.

User userID = new User();
Scanner input = new Scanner(System.in);
userID.setId(input.next());
System.out.println("User object : " + userID);
0 голосов
/ 28 мая 2019

Метод Сканера next() действительно будет генерировать только строковые значения. Если вы хотите создать новый экземпляр User, вам нужно как-то вручную преобразовать это значение String в User.

Может быть, у пользователя есть конструктор, который принимает имя?

String username = input.next();
User userID = new User(username);
...