我正在使用Morphia和MongoDB。当获取数据时,使用不带参数的默认构造函数创建对象,然后使用反射初始化字段(Kryo和Jackson等序列化库也这样做)。这样就不可能根据构造函数中字段的值添加代码(因为它们还没有用来自数据库的数据初始化)。我想知道是否有一种方法可以在获取和创建对象后运行附加代码,而不必在之后手动调用方法?原因是我正在存储一个对象的部分数据,并且基于它自己的数据和许多引用,比如初始化附加的瞬态字段。我目前可以提出4个备选方案:
-
当对象是
但只要有人(包括我)忘记运行
方法问题开始出现。
-
它们在运行时变化很大,因此需要更新
经常。因为每个物体有几十个我不认为
-
删除瞬态字段并添加
返回值。这会给我的服务器增加一些额外的工作,但是
-
将所有临时字段默认为空,并且每当我需要获取或设置其中一个字段时,我都会计算并在它为空时填充它们。
我正在使用1。但在辩论我是该用3还是4。不过,如果有更好的方法来运行一些代码后,一个对象被创建,我想知道。