Котлин: правильный способ для геттеров, доступных только для чтения

#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. Это лучший и единственный способ.