Вопрос по hash, java, arrays – Хеш-код напечатан вместо элементов массива [дубликат]

0

На этот вопрос уже есть ответ здесь:

Как мне напечатать мой Java-объект безSomeType @ 2f92e0f4” ? 10 ответов

Я создал программу с новым классом с именем Student, который устанавливает и получает различные переменные, такие как name, GPA, если они зарегистрированы и когда они зарегистрированы (это String, как предполагается). Проблема в том, что когда я пытаюсь сохранить информацию в массиве и / или списке массивов и распечатать его, вместо информации выводится хеш-код. Программа не совсем завершена, но я пытаюсь сначала решить проблему с хеш-кодом. Если бы вы могли помочь, я был бы очень признателен. Заранее спасибо!}

    Student st = new Student();


    System.out.println(st.getName());
    Student1();
    Student st1 = new Student("John");

}

public static void Student1() {

    System.out.println("Enter the data for student 1 :");
    Student st = new Student();
    Scanner keyboard = new Scanner(System.in);

    String name = keyboard.next();
    double GPA = keyboard.nextDouble();
    boolean enrolled = keyboard.nextBoolean();
    String date = keyboard.next();
     for (int i =0; i
Пожалуйста, попробуйте правильно отформатировать ваш код. Это н'вообще не читается. + Fabio Carello
Вы должны принять ответ ... Arash Saidi

Ваш Ответ

4   ответа
2

Student student[] = new Student[5];
newStudent.getName();
student[i] = newStudent;

strList.add(newStudent);
System.out.println(student[i]);

Здесь, когда вы печатаете, вы печатаете не имя ученика, а сам объект. Всякий раз, когда вы делаете System.out.println для объекта, возвращается хэш-код.

Это твоя проблема?

Да, это было, спасибо! user2946846
0

переопределите метод toString (), так как в настоящее время он печатает только реализацию по умолчанию метода toString () из класса Object, для которого задан текущий объект 'хэш-код ().

1
Если вы хотите String представление объекта, этот объект должен реализоватьtoString(), Если вы непо умолчанию в JVM распечатывается хэш-код.Если вы хотите напечатать определенное поле вашего объекта, вы должны явно напечатать это поле, если необходимо, методом; лайкSystem.out.println(student[i].getName());Если вы пытаетесь распечатать весь массив, вы должны использовать.Arrays.toString()
Дон»не волнуйтесь, у меня были ответы, принятые спустя месяцы :) Cyrille Ka
Я извиняюсь за МАССИВНУЮ задержку, меня вызвали на работу и вернулись домой после полуночи. Но ваше предложение исправило это, спасибо, сэр или мадам. Вы сэкономили мне немного времени. user2946846
-1

Поскольку вы хотите напечатать ссылочный тип, виртуальная машина нене знаю, как вы хотите, чтобы он отображался или что-то или нет, некоторые из полей нет для печати.

Это'Удачи тебе, Overriding "public String toString () " метод и реализовать свой собственный формат.

Похожие вопросы