有没有办法将自己(this)与 Java 中的其他对象交换?
在 Smalltalk 中我们可以写
Object subclass:myClass [
"in my method I swap myself with someone else"
swapWith:anObject [
self become:anObject.
^nil
]
]
myClass subclass:subClass [
]
obj := myClass new.
obj swapWith:subClass new.
obj inspect.
结果是An instance of subClass
,很明显。
我需要在 Java 中执行以下操作:
- 我处于单向层次结构(有向无环图)
- 在我的一种方法(确切地说是事件侦听器方法)中,我决定我不是最适合在这里的对象,所以:
- 我创建了一个新对象(确切地说是从我班级的一个子类),与他交换自己,并让自己在不久的将来被垃圾收集
那么,简而言之,我怎样才能在 Java 中实现self become: (someClass new:someParameters)
呢?我可以使用一些已知的设计模式吗?