如何访问类的所有数据字段?

时间:2011-04-20 17:00:57

标签: java reflection

我有一些类,如Client,Employee,Property 我将所有对象的列表维护为类名NIC中的数组列表。 所以类NIC的Java代码就像:

    class NIC
{
  static ArrayList<Employee> employeeList = new ArrayList<Employee>();
  static ArrayList<Property> propertyList = new ArrayList<Property>();
  static ArrayList<Client> clientList = new ArrayList<Client>();

 //rest of the code
  public static void backItUp()
  {
    //this method reads all the objects data from array lists and stores it in a file
  }
}

我坚持使用backItUp()方法,该方法应该从数组列表中读取所有对象数据并将其存储在文件中。

我不知道是否有任何方法可以访问当前类的所有数据字段,或者至少返回每个数据字段的引用。

请帮忙。提前谢谢。

3 个答案:

答案 0 :(得分:1)

看起来像是一个很好的序列化案例。看看http://java.sun.com/developer/technicalArticles/Programming/serialization/或者可能有点谷歌搜索有帮助。

答案 1 :(得分:1)

您最好的选择是从所有字段和方法中删除static修饰符,并使NIC成为可以实例化的正确对象。当您遵守OOP(面向对象原则)时,您会发现一切都变得更加容易。之后,您只需要NIC实施Serializable即可。默认的序列化例程将自动保存您班级中未标记为transient的所有内容。 ArrayList和所有其他JDK集合已经可序列化,因此无需进一步的工作。请阅读KDM发布的指南。

但是,如果您决定稍后添加更多字段或方法,则仍会出现兼容性问题,因为旧的持久对象将不再与新的更新类的签名匹配。这是所有程序员必须考虑的因素。例如,在您只是添加新方法但没有新字段的情况下,使用serialVersionUID会有所帮助,但需要进行适当的测试以确保向后兼容性。

答案 2 :(得分:0)

使用Class Name.member name访问类成员。你不需要额外的方法。