背景:我在Java中玩弄。我創建了一個名爲Animal的類,它跟蹤名稱,年齡,性別和numberOfAnimals Created。它有構造函數,訪問器方法,printNumAnimals(輸出靜態變量numberOfAnimals)和printAnimals(輸出實例變量值)的方法。使用對象作爲類型的ArrayList
當我在我的Main方法中實例化一個新的Animal對象時,我可以使用構造函數或set方法來設置實例變量的值。一切運作良好!
問題:當我創建一個動物對象ArrayList它的作品。它創建了ArrayList,但是當我輸出時,它將對動物對象的引用輸出爲:[[email protected],[email protected],[email protected]],而不是單個字段值。正如你在下面的代碼中看到的那樣,我做了一個簡單的動物sysout,它是ArrayList。我知道我可以設置一個迭代器來遍歷ArrayList,但我想輸出字段的值,而不僅僅是對對象的引用。我怎樣才能做到這一點?
我正在省略Animal類代碼,因爲這是一個非常簡單的類,帶有私有字段和公共getter和setter。請參閱下面的主要類別:
import java.util.ArrayList;
import animal.Animal;
public class Main {
public static void main(String[] args) {
/*
Animal animal= new Animal();
animal.setName("");
animal.setAge(-2);
animal.setSex("Jake");
animal.printAnimal();
Animal.printNumAnimals();
*/
ArrayList<Animal> animals = new ArrayList<Animal>();
Animal animal;
animal = new Animal();
animal.setName("Fido");
animal.setAge(3);
animal.setSex("Male");
animals.add(animal);
animal = new Animal();
animal.setName("Fifi");
animal.setAge(1);
animal.setSex("Female");
animals.add(animal);
animal = new Animal();
animal.setName("Jake");
animal.setAge(2);
animal.setSex("female");
animals.add(animal);
Animal.printNumAnimals();
System.out.println(animals);
}
}
http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#toString%28 %29 –
嗨JB,我很抱歉,如果這是重複的。我搜索了知識庫並找不到解決方案。我可能搜索不正確。感謝您提供api文檔的鏈接。這也幫助 –