2015-01-14 1 views
-1

Теперь я хочу, чтобы он печатал только то, что он говорит, без адреса памяти. Как мне это достичь?Array печатает адрес памяти, несмотря на переопределение

public Telefonnummer[] getTelenummer() { 

    Telefonnummer[] tnummer = new Telefonnummer[nummerarray.size()]; 
    nummerarray.toArray(tnummer); 

    System.out.println(Arrays.toString(tnummer)); 


    return tnummer; 

}

ли конструктор и:

private static void kundSök() { 
    System.out.println("...? "); 
    String namn = keyboard.nextLine(); 

    if (kunderna.containsKey(namn)) { 
     for (String k : kunderna.keySet()) { 
      Kund kund = kunderna.get(k); 
      System.out.println(kund); 
      System.out.println(kund.getTelenummer()); 

После того, как я добавил человека к ArrayList и т.д., что дает мне выход:

Сэм wasdfgn [123456 : efdg] [LTelefonnummer; @ 28d93b30

Последняя часть, бит адреса памяти, является частью, от которой я хочу избавиться. Еще раз, как мне это достичь?

Редактировать: Я пытался переопределить, но ничего не сделал. Может быть, есть еще одна проблема?

+2

Дайте '' Telefonnummer' ToString() 'переопределять! –

+0

Не адрес памяти, это hashcode, сделайте то, что предлагалось на воздушной подушке –

+0

Число не является адресом памяти, это hashCode объекта(). –

ответ

1

default behaviour for toString является печать имя типа (как L следует имя типа), а затем @ и шестнадцатеричной в хэш-код (который по умолчанию является адресом памяти для объекта).

Чтобы изменить это, отмените метод toString для вашего класса Telefonnummer.

public class Telefonnummer { 
    private String nummer; 
    ... 
    @Override public String toString() { 
    return "Dial " + nummer + " for a good time"; 
    } 
} 
+0

Идея, что hashCode использует адрес памяти, представляет собой исторический артефакт http://stackoverflow.com/questions/36236615/does-object-tostring-or-object-hashcode-ever-give-the-memory-address-of-the -obje – Raedwald

0

В библиотеке Гуава есть столяр, который может быть использован для этого. См. https://code.google.com/p/guava-libraries/wiki/StringsExplained

Строка str = Joiner.on (","). Join (list);

Вы также должны иметь функцию ToString работать на классе элементов списка

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