我正在努力实现以下目标。我有几个模型有一些基本的方法,比如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中,它似乎不可能。那么父类如何自动将变量写入子类。或者这不可能,我必须手动完成吗?我在这里看到的问题是,当我可以在超类中完成时,我必须再次为每个模型执行此操作。我该怎么办?
答案 0 :(得分:1)
实现此目的的一种方法是定义父类以使地图包含所有可能的字段;并让子类定义其包含在枚举中的字段。因此,从父类级别,您只需序列化所有映射及其键值对。使用带枚举的泛型作为参数,可以灵活选择要使用的键/键类型。
这样说,你最好有一个生成子类的代码生成器;如果您愿意,您还可以为指向地图中特定键的每个字段生成单独的方法。