我有一个POJO可以访问一个返回相同类型对象的方法(通常填充一些字段)。是否可以在POJO中实现一个调用此getter方法并设置POJO实例的方法来引用返回的对象?我想避免为我创建的每个POJO设置copy()
函数。
例如:
public class DAO {
public static BaseEntity get(int id) {
// returns some POJO
}
}
public abstract class BaseEntity {
public void get(int id) {
BaseEntity entity = DAO.get(id);
// sets "this" to the entity
}
}
public class POJO extends BaseEntity {
int foo;
String bar;
}
答案 0 :(得分:2)
您无法分配到this
。
您可以让get
方法返回新实例:
public BaseEntity get(int id) {
return DAO.get(id);
}
然后将返回的实例分配给原始实例的引用:
BaseEntity pojo = new POJO ();
...
pojo = pojo.get(5);
答案 1 :(得分:1)
如果我可以调用pojo.get(5)并更新对象,
你真正想要的只是
BaseEntity pojo = DAO.get(id);
更改对象引用的唯一方法是返回它。在这种情况下,尝试包装它似乎只会使代码更复杂。