Java:设置"这个"实例到相同类型的对象

时间:2015-01-20 07:45:43

标签: java

我有一个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; 
}

2 个答案:

答案 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);

更改对象引用的唯一方法是返回它。在这种情况下,尝试包装它似乎只会使代码更复杂。