#kotlin
#котлин
Вопрос:
У меня есть класс Java (упрощенный), подобный этому
public class Input { private boolean leftPressed; private boolean rightPressed; public void handleValue(Event event) { if (event.button == 1) { leftPressed = event.pressed; } else if (event.button == 3) { rightPressed = event.pressed; } } public boolean isLeftPressed() { return leftPressed; } public boolean isRightPressed() { return rightPressed; } }
Обратите внимание, что поля могут быть изменены только с помощью кода внутри handleValue
. Будет ли этот код Котлина
class Input { var leftPressed = false private set var rightPressed = false private set handleValue(event: Event) { if (event.button == 1) { leftPressed = event.pressed; } else if (event.button == 3) { rightPressed = event.pressed; } } }
будет ли правильным способом создания свойств, доступных только для чтения? Вам действительно нужно добавить private set
, чтобы сделать его безопасным/доступным только для чтения? Существуют ли другие/лучшие способы предотвратить запись в поле из-за пределов этого класса?
Комментарии:
1. ДА. И если они используются только в одном модуле, вы также можете сделать их внутренними .
2. Это лучший и единственный способ.