将变量自动写入子类

时间:2014-02-06 09:07:49

标签: java android oop

我正在努力实现以下目标。我有几个模型有一些基本的方法,比如saveModel,loadModel,laodModel from。现在,我有其他类扩展此模型,例如用户和电影。

用户现在拥有变量

id
userName
userMail
userPW

电影已

id
movieTitle
movieLength
movieGenre

现在,我创建一个新的User对象并从数据库加载它。所以现在当我从Movie加载模型时,我有一个包含以下信息的JSON-Object:

id = x
movieTitle = "bla"
movieLength = "bla"
movieGenre = "bla"

如您所见,jSON包含正确的键和值,现在我只需要将它们写入子模型中。怎么可能,我的模型现在将所有字段值写入用户对象?在PHP中我会像这样做

foreach ($row as $key=>$val) {
            $this->$key = $val;
}

在Java中,它似乎不可能。那么父类如何自动将变量写入子类。或者这不可能,我必须手动完成吗?我在这里看到的问题是,当我可以在超类中完成时,我必须再次为每个模型执行此操作。我该怎么办?

1 个答案:

答案 0 :(得分:1)

实现此目的的一种方法是定义父类以使地图包含所有可能的字段;并让子类定义其包含在枚举中的字段。因此,从父类级别,您只需序列化所有映射及其键值对。使用带枚举的泛型作为参数,可以灵活选择要使用的键/键类型。

这样说,你最好有一个生成子类的代码生成器;如果您愿意,您还可以为指向地图中特定键的每个字段生成单独的方法。