2011-10-03 75 views
2

我想知道在Java中是否有任何约定(通过Javadoc或隐式约定)来指示给定的相同类实例可以在多个上下文中重用?对象实例如何重用?

我在问,因为在SWT布局上下文中,我不知道是否允许我重复使用同一个GridLayout对象的几个Composite对象。我想在检查源代码后我的答案是肯定的(我看不到任何状态字段),但Javadoc没有明确说明它。也许隐含的惯例是,如果不明确禁止,“共享”是允许的?

+0

在'GridLayout'的具体情况下,它具有诸如'addLayoutComponent'之类的方法。没有进一步的资格证明应该表明那里可能有某种状态。 –

+0

我的GridLayout是一个不是AWT的SWT,因此没有这种方法; - ) –

+0

啊,哎呀。我不会了解SWT。 –

回答

4

也许隐含的惯例是“共享”是允许的,如果不明确禁止?

没有这样的约定。

相反,你应该采取审慎的做法;即,如果Javadoc明确声明您可以安全地执行此操作,则应该只重用实例。

阅读代码并发现与当前实现共享是安全的并不能保证在将来的版本或早期版本中共享是安全的。只依赖记录的行为是一个好主意。

+0

感谢您的答案,但我很确定,大多数着名的Java库,甚至可能是标准的Java类没有明确指出,我错了吗? –

+0

我已经更新了答案,以澄清我所提出的观点。 –

+0

接受的答案;-) –