2015-05-02 2 views
-1

Итак, у меня есть класс с именем Hospital и метод InsertFolders внутри класса Hospital. Внутри метода пользователь должен заполнить массив (макс. 5) экзаменов (я создал класс под названием Folders, где у меня есть набор и методы get для массива). Теперь я создал другой метод, называемый print, где я хочу напечатать этот массив. Обратите внимание, что существует массив объектов, который содержит папки. ListOfFolders [i] .getNameOfFolder (это, например, поле имени папки). Есть ли способ, которым я могу распечатать массив? Например, когда я пытаюсь ListOfFolders [i] .getArrayOfExaminations(), он не печатает ожидаемые экзамены.Как напечатать массив в массиве объектов

+2

Создание метода ToString на объекты, которые вы хотите напечатать. – Asheliahut

ответ

4

Просто переопределить toString функции, как:

public class Person{ 
    private int id; 
    private String firstName; 
    private String lasrName; 
    . 
    . 

    public Person(){ 
     this.id = 1; 
     this.firstName = "First Name"; 
     this.lastName = "Last Name"; 
    } 

    public String toString(){ 
     String str = ""; 

     str += "Person Info: \n"; 
     str += "Id : " + id + "\n"; 
     str += "First Name : " + firstName + "\n"; 
     str += "Last Name : " + lastName + "\n"; 
     .... 

     return str; 
    } 

} 

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

Использование:

List<YourClass> list = new ArrayList<YourClass>(); 
list.add(new Person()); 

for (YourClass item : list){ 
     System.out.println(item); //here it will automaticly use the overridden toString in your class 
} 

Выход:

Person Info: 
Id: 1 
First Name 
Last Name 
+0

Когда я попробовал первый пример, который вы мне дали, он остановил печать адреса, но он вообще ничего не печатал. Могу ли я спросить более подробное объяснение, потому что я думаю, что это решение, но я чего-то не хватает. Спасибо. – Maria

+0

Вам нужно «переопределить» функцию «toString», как это было в примере «YourClass» выше, эта функция должна возвращать строку при ее создании по вашему запросу, скажем так, что она возвращается так: строка «return» from toString function ";' Тогда вы увидите это при использовании функции println – roeygol

+0

Я сделал свой пример намного более простым для вас, чтобы понять, я надеюсь, что все в порядке. – roeygol

0

Просто печать объекта по умолчанию присваивает ссылку (~ адрес). Вам необходимо переопределить метод toString() для объекта, чтобы он напечатал правильное значение.

Если это массив по умолчанию в Java, вы можете перебрать объекты в массиве с синтаксисом for (item: array).

Смежные вопросы