gpt4 book ai didi

Java - 当对象的任何属性发生变化时触发事件

转载 作者:行者123 更新时间:2023-11-30 11:46:22 24 4
gpt4 key购买 nike

在 Java 中,当对象的任何属性发生变化时,对象触发事件的最优雅方式是什么?

我的领域模型有几个对象,比如

class MyClass {

String id;
String name;
Collection<MyThing> mythings= new HashSet<MyThing>();
// more fields...
Date lastUpdated;

//constructor, getters and setters, etc
}

每当任何属性(id/name/mythings)发生变化时,我都需要将 lastUpdated 设置为“今天”。

我更喜欢一个不是特定于 JDO 的解决方案,并且绝对不希望数据存储中有这种逻辑(RDBMS 中的自动时间戳列等)。

我可以放

this.lastUpdated = new Date();

在每个 setter 中,或在每个 setter 中触发一个自定义事件,但这很丑陋且容易出错。

有没有更优雅的解决方案?

最佳答案

您可以实现 PropertyChangeListener 接口(interface)并在客户端注册您的兴趣。自 1.0 以来,它一直是 Java Bean 规范的一部分。

它们不仅仅与 UI 元素有关。它们被认为是为 IDE(例如 Bean Factory)匹配类似 VB 的功能的一种方式。

http://docs.oracle.com/javase/tutorial/uiswing/events/propertychangelistener.html

关于Java - 当对象的任何属性发生变化时触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9815182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com