클래스 내의 클래스 인스턴스를 null로 설정할 수 있습니까? 예를 들어, 다음과 같이 할 수 있습니까?클래스 내에서 클래스의 인스턴스를 null로 설정할 수 있습니까?
int main{
//Create a new test object
Test test = new Test();
//Delete that object. This method should set the object "test" to null,
//thus allowing it to be called by the garbage collector.
test.delete();
}
public class Test{
public delete(){
this = null;
}
}
나는 이것을 시도했지만 작동하지 않습니다. "this = null"을 사용하면 왼손 쪽이 변수가되어야한다는 오류가 발생합니다. 비슷한 것을 성취 할 수있는 방법이 있습니까?
null로 설정해야하는 이유는 무엇입니까? 가비지 콜렉터는 똑똑합니다. 그들은 언제 객체가 더 이상 도달 할 수 없는지를 안다. 이 객체에 대한 * 모든 참조를 제거하려고합니까? –
아니,'test = null;'을 할 수있다. 대부분의 상황에서는 GC가 "수집 가능"하자마자 수집합니다. – assylias
개체를 "파괴"하려고합니다. 객체에 대한 모든 참조가 사라질 때까지는이를 수행 할 수 없습니다. 당신이 할 수있는 최선은 객체에 "삭제 된"플래그를 넣어 모든 콜을 실패하게 만듭니다. –