Java从对象列表中提取单个数据

时间:2013-01-13 14:52:57

标签: java

我有一个像这样的Java类:

public class Employee {
  String Name;
  int Id;
  int Age;

  void setName(String tempVal) {
    Name = tempVal;
    System.out.println(Name);
    System.out.println("\n");
  }

  void setId(int parseInt) {
    Id = parseInt;
    System.out.println(Id);
    System.out.println("\n");
  }

  void setAge(int parseInt) {
    Age = parseInt;
    System.out.println(Age);
    System.out.println("\n");
  }

}

现在我想使用SAXParser使用链接中的代码解析employees.xml文件:http://totheriver.com/learn/xml/xmltutorial.html#5.2

问题是当我将tempEmp添加到列表并访问列表以在printData()方法中打印其值时,输出类似于:

No of Employees '3'.

Employee@140de537

Employee@1c43882a

Employee@15a08be5

现在,如何逐个提取员工的姓名,年龄和身份?

4 个答案:

答案 0 :(得分:2)

您必须在toString()类中实现Employee方法才能正确显示,方法如下:

@Override
public String toString() {
    return Id + " " + Name + " " + Age;
}

另外,请记住,在Java中,属性名称应以小写字符开头,而不是大写字母。

答案 1 :(得分:2)

您想添加一些getter方法。

你还应该查看code conventions for Java - 你的一些变量以大写字母开头,不应该这样。

答案 2 :(得分:2)

我猜你正在将Employee对象添加到列表中并直接从list中打印对象。如果你不重写toString()方法,它将调用Object类的toString()方法(所有类的超类),它将返回classname @ hashcode(对象的哈希码)。如果要从类中打印一些数据,则需要覆盖类中的toString()方法并返回所需的格式。

答案 3 :(得分:1)

要单独获取每个值,您需要添加一些get方法

public String getName()
{
  return Name;
}

public int getAge()
{
  return Age;
}

public int getId()
{
  return Id;
}