Ваш пример того, что вы хотите сделать, демонстрирует отсутствие понимания того, как / когда объекты уничтожаются / очищаются.
class KillMe {
....
public void destroy() {
this.getObject = null //this is only for demonstrate my idea
}
}
Вызов, который вы там делаете (this.getObject
), получает ссылку натекущий объект, а затем устанавливает для этой ссылки значение null (т. е. больше не указывает на текущий объект. Он ничего не делает для самого объекта и не изменяет другие переменные в другом месте кода, которые указывают на объект.
Рассмотрим это следующим образом ... переменные указывают на значения (объекты). Пока переменные не указывают на заданное значение, это значение сохраняется (не собирается / уничтожается). Чтобы удалить всепеременные ссылаются на значение, вам нужно найти все переменные, которые указывают на него, и направить их на что-то другое (например, null). Реально, вы не можете сделать это (хотя я полагаю, что нет ничего невозможного с достаточно страшным отражением и /или магия байт-кода;)
Если подумать об этом иначе, если вы смогли уничтожить само значение / объект, то чтослучится ли со всеми другими переменными, которые в данный момент указывают на него?Они теперь указывают на освобожденную память, приводящую к некоторой версии Java segfault?