我會盡量使這個儘可能簡單。 我有一個類寵物的對象:使用對象的鏈接列表的Java toString打印錯誤
public class Pet {
private String name;
private int treats;
private Coordinate coor;
}
注意coor
僅僅是包含2輛花車,經度和緯度的對象。
在我的可執行類中,我調用了我的PetList(鏈接列表)類的printAll()函數。
PetList List = new PetList();
... // adding nodes to my linkedlist etc.
...
List.printAll();
在我printAll()函數,我打電話給我的寵物類中我的toString功能:
public void printAll() {
LinkNode temp = first;
while(temp != null) {
System.out.print(toString());
System.out.println();
temp = temp.next;
}
}
在我的toString()函數,創建一個StringBuilder:
// Most of this appending is formatting
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(name);
// sb.append("{");
sb.append(treats);
// sb.append("} ");
//if(coor.getLatitude() >= 0) {
// sb.append("+");
//}
sb.append(coor.getLatitude());
// sb.append(" ");
//if(coor.getLongitude() >= 0) {
// sb.append("+");
//}
sb.append(coor.getLongitude());
return sb.toString();
}
我直到EOF讀取輸入:
add 3.0 3.0 Three // add(adds a node) with 2 floats (longitude & latitude) and Three(a name)
add 2.0 2.0 Two
add 1.0 1.0 One
但是,當我打電話打印(這就要求printAll())我得到這樣的:
add 3.0 3.0 Three
add 2.0 2.0 Two
add 1.0 1.0 One
print
[email protected]
[email protected]
[email protected]
但我希望這種情況發生:
add 3.0 3.0 Three
add 2.0 2.0 Two
add 1.0 1.0 One
print
One{0} +1.0, +1.0
Two{0} +2.0, +2.0
Three{0} +3.0, +3.0
我不知道,但是我收到一個參考,而不是任何實際數據?這是否是由於我所顯示的代碼中的任何內容?還是在別的地方?任何幫助表示感謝,謝謝!
編輯:
Here is the beginning of my PetList class:
public class PetList {
protected class LinkNode {
protected LinkNode next;
protected LinkNode prev;
protected Pet animal;
public LinkNode() {
next = prev = null;
}
}
這裏是我叫現在的toString功能:
//public void printAll() {
// LinkNode temp = first;
// while(temp != null) {
System.out.print(animal.toString());
// System.out.println();
// temp = temp.next;
// }
//}
這裏是在編譯的時候我收到錯誤:
PetList.java:36: error: cannot find symbol
System.out.print(animal.toString());
^
symbol: variable animal
location: class PetList
貴PetList類有自己的toString()方法?現在它使用Object.toString()方法。 – Jason
哦,我的天啊,不,所以我一直沒有一直在調用toString方法lol – Coder117
嗯,在我的PetList類中我有一個'受保護的寵物動物;'但是當我添加動物到我的toString調用時,它給了我一個錯誤。修改過的調用:'System.out.print(animal.toString());'錯誤:'./PetList.java:37:錯誤:找不到符號 System.out.print(animal.toString());' – Coder117