Как String привести к List,и как передать значения из main в объект другого класса?
Как написать,чтобы хобби из String приводились к List и выводились без запятой с новой строки? И как переопределить метод toString?
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Введите имя: ");
String name = scan.nextLine();
System.out.println("Введите логин: ");
String login = scan.nextLine();
System.out.println("Введите возраст: ");
byte age = scan.nextByte();
System.out.println("Введите хобби через запятую");
String hobby = scan.nextLine();
User user = new User(name,login,age,hobby);
try {
FileOutputStream fos = new FileOutputStream("some.data");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(user);
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
FileInputStream fis = new FileInputStream("some.data");
ObjectInputStream ois = new ObjectInputStream(fis);
User user1 = (User) ois.readObject();
System.out.println(user1);
ois.close();
}
catch(IOException e) {
e.printStackTrace();
}
catch(ClassNotFoundException e) {
e.printStackTrace();
}
}
}
public class User{
String name;
String login;
byte age;
String hobby;
User(){}
User(String name,String login,byte age, List<String> hobby){
this.name = name;
this.login = login;
this.age = age;
this.hobby = hobby;
}
String[] hobbyArr = hobby.split(",");
for(String a : hobbyArr)
System.out.println(a);//не работает
public String toString(){
}
}
Ответы (1 шт):
Автор решения: Uladzislau Melnikau
→ Ссылка
Реализовать toString() можно следующим образом
@Override
public String toString() {
return getClass().getSimpleName() +
"{" +
"name='" + name + '\'' +
", login='" + login + '\'' +
", age=" + age +
", hobby='" + hobby + '\'' +
'}';
}
Возвращает строковое представление объекта. В результате должно получиться краткое, но информативное представление, легко читаемое человеком. Рекомендуется, чтобы все подклассы переопределяли этот метод.
Перевод хобби в List
List<String> hobbies = new ArrayList<>(Arrays.asList(hobby.split(",")));