2015-01-09 3 views
0

Итак, у меня есть класс под названием Employee, в котором я создал ArrayList для другого класса. Я пытаюсь распечатать значения списка, но они печатают ссылку на объект каждого элемента. Я забыл, как это сделать, я пробовал искать его в другом месте, но не могу найти ответа.Как распечатать значения списка массивов в строке?

Вот служащая Класс:

public class Employee { 

int employeeID; 
String employeeName; 

public Employee(int employeeId, String employeeName){ 
this.employeeID = employeeId; 
this.employeeName = employeeName; 

} 
... 

Вот где я печатаю свои значения:

public void printArrListValues() { 

    for(Employee x: employeeList){ 

     System.out.println(x); 
    } 
// Arrays.toString(employeeNameLst); 

} 

Я попытался с помощью .toString() по х, однако это не решило проблему.

Консоль напечатал мне:

[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
BUILD SUCCESSFUL (total time: 0 seconds) 
+0

Добавить 'ToString()' в 'Employee'. – markspace

+0

Почему бы не использовать 'Vector' или' HashMap'. Его легче получить случайные значения в коллекции – TheUknown

+1

'Vector' был заменен на' ArrayList' обратно в Java 1.2. – ajb

ответ

3

При передаче объекта println, в конечном счете, toString() будет называться. Поскольку вы не переопределили toString(), Employee унаследовал Object's toString() method, который отвечает за вывод, который вы видите.

Другими словами, этот метод возвращает строку, равную значению:

getClass().getName() + '@' + Integer.toHexString(hashCode()) 

Override toString в Employee, и вернуть String вы хотите видна, когда Employee печатается.

+0

Простите, я не совсем понимаю, что мне нужно делать. Нужно ли мне войти в мой класс Employee, а затем создать метод 'toString()', который принимает «Employee» в качестве аргумента, а затем печатает его содержимое с помощью 'System.out.print()'? –

+0

Не совсем верно. Создайте метод с подписью 'public String toString()' в 'Employee', без параметров. Используйте переменные экземпляра 'employeeID' и' employeeName' при создании 'String', который представляет, как вы хотите вывод, и _return_, что' String'; не печатайте его. Метод 'println' будет печатать все, что возвращается' toString() '. – rgettman

+0

Круто работает :) Спасибо! –

0
  1. вы можете переопределить метод ToString в классе сотрудника
  2. или x.getter методы