아래 class A
안에 private
메서드가 있습니다.메서드 내에서 익명의 내부 클래스를 참조하는 개체를 "null"로 설정할 수 있습니까?
class A
{
//...
private void initPlay(final long duration)
{
myTimer = new Utils.Timer(duration) // non-static member variable
{
@Override
public void timerExpired(Object o)
{
// ... do something
myTimer = null;
initReplay(); // unrelated method
}
};
}
}
myTimer
은 Utils.Timer
의 추상 메서드 timerExpired(Object)
를 구현하는 무의식 내부 class
를 참조합니다.
이제 타이머가 만료되고 해당 메소드가 호출되면 myTimer = null;
를 간단히 설정합니다. 이 할당은 객체에 대한 참조가없고 GC가 발견 될 때마다 그것을 제거 할 수 있는지 확인하기 위해 수행됩니다.
괜찮습니까? 부작용이 있습니까 (null 체크 제외). 이미 치료를 받았습니까?