【发布时间】:2011-05-09 13:30:43
【问题描述】:
我在不同的包中有几个 Pojo,每个 POJO 包含来自同一个包的另一个 pojo 的集合。我需要将包 B Pojos 中的所有同名项目复制到包 A 中的对象。
示例:
package com.vanilla.packageA;
public class Student{
private String firstName;
private String lastName;
private Set<Course> course;
//getters and setters ommited
}
package com.vanilla.packageA;
public class Course{
private String courseName;
private String courseDescription;
//seters and getters
}
package com.vanilla.packageB;
public class Student{
private String firstName;
private String lastName;
private Address address;
private Set<Course> course;
Private Date birtday;
//getters and setters ommited
}
package com.vanilla.packageB;
public class Course{
private String courseName;
private String courseDescription;
private <Lecturer> lecturer;
private Integer hours;
//seters and getters
}
我想将 PackageB 类中的所有项目递归复制到 packageA 类中存在的 PaCkageB 并共享相同的名称。
更新:
伙计们,我知道这是个愚蠢的问题,但我需要维护这段代码,现在代码的编写方式是他们必须调用 50 个 getter 和 setter,或者调用带有 50 个参数的构造函数。 不幸的是,我不能使用同一个对象,我需要复制它,但我必须找到更“优雅”的方式来复制 tese beans。
【问题讨论】:
-
似乎是一个奇怪的请求。您是否需要访问受保护或默认的方法/变量?
-
我有getter和setter,所以我可以使用它。
-
我会说你有一个 POJO 或一个 Bean。 “POJO 是 Plain Old Java Object 的首字母缩写词。该名称用于强调给定对象是普通 Java 对象,而不是特殊对象,尤其不是 Enterprise JavaBean。”来自 POJO 的维基百科条目
-
如果您不需要访问包范围的东西,那么为什么不直接使用包 B 中的类呢?没有理由需要将类放在包 A 中。
-
请看我的更新,它会解释更多。
标签: java apache-commons