【发布时间】:2018-05-07 13:45:49
【问题描述】:
我已经定义了一个类似于模型/pojo 的类。该类有许多键/变量。我已经实现了将 POJO 存储在磁盘上以供将来使用的自定义解决方案。现在我想做的是,每当更改类/POJO 中的任何值时,我都应该调用一个方法,将新更改与磁盘上的文件同步。
我知道我可以为每个变量定义 setter。但是对于 100 多个直接和子字段来说,这样做是相当繁琐的,即使我为每个字段定义了 setter,我也必须从所有 setter 中调用同步函数。
我需要的是单个代理设置器或拦截器,用于将所有更改推送到类中的变量。
我在一个 android 应用程序中使用它,所以每当用户在他/她的帐户中输入新的详细信息时,我必须在特定的时间实例存储这些详细信息,以防止数据丢失。我正在使用 GSON 进行序列化和反序列化。
抱歉使用了模糊的术语,从未上过大学:|。
【问题讨论】:
-
Eclipse 让您有机会通过 3 或 4 次单击为您的字段添加设置器。值得尝试。 (来源->添加设置器/获取器)。但是对于您的同步方法,我不知道您如何实现您的要求
-
如果没有setter方法,POJO如何更新?您确定要在更新单个字段时写入磁盘吗?那么比如更新了 5 个字段,就会有 5 次磁盘写入?
-
查看面向方面的编程,尤其是 AspectJ。在更改底层变量之后,您可以在所有设置器中定义一个切入点,并附加和建议执行同步到磁盘的逻辑。 baeldung.com/aspectj
-
@AndrewS 我在一个 android 应用程序中使用它,所以每当用户输入他/她的帐户的新详细信息时,我必须将这些详细信息存储在该特定实例中。我使用 GSON 进行序列化和反序列化。
-
为什么更新单个字段?为什么不在用户单击保存按钮时,或者在调用 Activity.stop()/destroy() 时?