我正在尝试在调用父对象被删除但该对象中仍有子对象的情况下创建错误消息。 例如,有一个包含多个客户对象的项目对象。如果项目对象被删除但项目仍然附有客户,那么我希望显示一条错误消息,然后显示错误消息。
是否有某些注释可以检查是否存在任何客户?
答案 0 :(得分:2)
父必须关心它的孩子。 父必须引发错误(抛出异常,返回错误代码等),如果它还有子节点并且不能被删除。
类似的东西:
public boolean dispose() {
if (hasChildren())
return false; // not disposed/deleted
// do disposing stuff
isDisposed = true; // flag the disposed state
return true; // disposed / deleted
}
答案 1 :(得分:-1)
通常,如果一个对象在另一个对象中具有既得利益,则可以使用Observer pattern之类的东西。在这种情况下,当创建子项时,父项可以观察它。
在你的情况下,当父节点被销毁时(比如,在其finalize()方法中),它可以看到是否还存在任何子节点并且如果存在则抛出错误。
如果父级维护子级列表,如果列表不为空,则可能只是在父级的finalize()方法中抛出错误。
编辑:您可能必须等待垃圾收集才能调用finalize()。有关完整报道,请参阅Is there a destructor for Java?。