Чтобы обойти проблему, вы можете убедиться, что получатель не выполняет никаких сложных действий дважды или в основном возвращает логическое значение. Вы также должны убедиться, что получатель имеет значение не имеет значения : повторный вызов должен дать тот же результат. Для этого вы можете либо
- Лениво вычислите логическое значение и сохраните его во временном поле, чтобы во второй раз возвращалось предварительно вычисленное значение.
- Измените логику так, чтобы действие, которое привело бы к изменению логического значения, действительно обновило логическое поле, а получатель / установщик действительно был просто получателем / установщиком и ничего не вычислял.
Объяснение не кристально ясно, но вы должны увидеть идею. Я не вижу ничего плохого в том, чтобы простой геттер оценивался несколько раз.