Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有没有办法在运行时用反射标记给定的java对象(不是类!)?有什么方法可以修改对象的任何内容,以便我们下次看到它时可以识别它?
或者这种识别的唯一方法是将对象存储到 IdentityHashMap 中?
Java 实例默认不支持动态元数据。但是,即使他们这样做了,您所描述的也是一种反模式。
如果您需要围绕实例创建元数据,有很多方法可以做到,但最简单的方法是在集合中注册对象并以这种方式附加元数据,无论是否持久。
您可以在运行时使用动态代理来实现这一点,但我再次建议不要这样做。如果您正在构建一个真正需要此功能的系统,那么在您的特定应用程序类上添加一些元数据的基础对象将很容易实现,不会花费您任何费用,并且复杂性较低。