在對象生命週期的哪個點使用匿名內部類作爲PropertyChangeListener時,是否收集了類垃圾?包含類(SettingsNode)被回收後?我應該顯式移除包含類(SettingsNode)的終結器中的PropertyChangeListener嗎?Java - 匿名內部類生命週期
public class SettingsNode extends AbstractNode
{
public SettingsNode(Project project, ProjectSettings projectSettings)
throws IntrospectionException
{
// use an anonymous inner class to listen for changes
projectSettings.addPropertyChangeListener(ProjectSettings.PROP_NAME,
new PropertyChangeListener()
{
@Override
public void propertyChange(PropertyChangeEvent evt)
{
// handle event
}
});
}
}
根據提供的答案,匿名似乎不是此用例的最佳選項。我現在認爲一個實例內部類可能是一個更好的選擇,因爲我可以保存一個引用,並在將來的某個時刻調用removePropertyListener方法。 – javacavaj 2010-01-20 20:39:25