如何在java中临时标记对象

时间:2012-10-21 05:12:18

标签: java jvm

有没有办法在运行时用反射标记给定的java对象(不是类!)?有些方法可以修改关于对象的任何内容,以便我们下次看到它时能够识别它吗?

或者这种识别的唯一方法是将对象存储到IdentityHashMap中?

1 个答案:

答案 0 :(得分:2)

默认情况下,Java实例不支持动态元数据。然而,即使他们这样做了,也就是你所描述的那种反模式。

如果您需要围绕实例创建元数据,有很多方法可以做到这一点,但最简单的方法就是在集合中注册对象并附加元数据,无论是否持久化。

您可以使用动态代理在运行时实现此目的,但我再次建议不要使用它。如果您正在构建一个真正需要它的系统,那么在您的特定应用程序类上添加了一些元数据的基础对象将很容易实现,不需要花费任何成本,并且复杂度低。