У меня есть объект Java с этими атрибутами и методами:

public class Student {
    private String name; 
    private String surname;
    private int age;
    private int[] qualifications = new int[4];
}

public Student(String name, String surname, int age, int[] qualifications){
    this.name = name;
    this.surname = surname;
    this.age = age;
    this.qualifications = qualifications;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int[] getQualifications () {
    return qualifications;
}

public void setQualifications(int[] qualifications) {
    this. qualifications = qualifications;
}

Я инициализирую экземпляр объекта с помощью:

Student a1 = new Student("John","Doe",32,new int[]{10,8,9,9});

И я пытаюсь получить и установить имя и квалификацию. С атрибутом name работает, но не с массивом квалификаций.

// it works
a1.setName("Tom");
System.out.println("Name of the student: "+a1.getName());


//it doesn't work
System.out.println("Qualifications of the student: "+a1.getQualifications());

//return:
[I@15db9742

Благодарность!

-1
user3448317 17 Окт 2015 в 11:15

2 ответа

Лучший ответ

Если под словом «не работает» вы имеете в виду, что получаете следующий результат:

Квалификация студента: [I @ 368102c8

Тогда "исправление" заключается в использовании Arrays.toString для печати массива:

System.out.println("Qualifications of the student: " + Arrays.toString(a1.getQualifications());

Это выведет:

Квалификация студента: [10, 8, 9, 9]

Если вы хотите избавиться от окружающего [...], затем используйте String.substring, например:

String arrstr = Arrays.toString(a1.getQualifications());
System.out.println("Qualifications of the student: " + arrstr.substring(1, arrstr.length() - 1));

Это выведет:

Квалификация студента: 10, 8, 9, 9

1
janos 17 Окт 2015 в 08:20

Чтобы распечатать элементы массива, которые вы бы использовали Arrays.toString(array), a1.getQualifications() вернет реализацию по умолчанию для метода toString.

0
Saravana 17 Окт 2015 в 08:18