背景:我在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文档的链接。这也帮助 –