Изменение нестатических значений из статического метода

Поэтому я делаю приложение, у которого есть обработчик в основном классе / деятельности. Я получил предупреждение, что должен объявить его статическим, чтобы предотвратить утечки памяти.
Итак, я прочитал несколько статей, в которых объясняется проблема, и я знаю, что понимаю ее (и изменил обработчик на static и использовал слабую ссылку).

Но вот моя проблема:
Мне нужен обработчик, чтобы изменить некоторые нестатические переменные (или вызвать метод, который делает это). Я не хочу объявлять эти переменные статическими, так как в этом нет особого смысла (они должны принадлежать экземпляру основного класса, а не самому классу).

Как мне это сделать?

Я уже видел блок кода, в котором кто-то создал экземпляр основного класса, а затем использовал его для изменения значений нестатических переменных или для вызова нестатических методов. Это кажется мне очень странным, потому что при создании этого нового экземпляра и использовании переменных из этого экземпляра, как моя программа может узнать, что я говорю о том же "myInt" или "myString", что и раньше в программе.

Простите, если в этом нет смысла или я не очень хорошо объяснил, я все еще новичок

1 ответ

Вы можете сохранить ссылку на основной класс в статической переменной (при условии, что есть только один экземпляр основного класса), или вы можете передать ссылку на основной класс в качестве параметра статическому методу

Вы правы в том, что не хотите создавать экземпляр нового основного класса в статическом методе - это не повлияет на любые другие копии основного класса (если только вы не изменяете только статические методы / свойства копии, в этом случае вы должно быть в состоянии сделать это без экземпляра основного класса)

Другие вопросы по тегам