В вашем операторе if-else нет ничего плохого и нет ничего плохого в инициализации конечной переменной внутри оператора ветвления в конструкторе. Я просто запустил простой конструктор, как ваш, чтобы инициализировать private int right
, и он работал нормально. Убедитесь, что вы правильно объявляете свой конструктор как InitInt() { ... }
.
Ошибка, которую вы опубликовали, заключается в том, что в вашем коде InitInt(){}
есть пустой конструктор, который не инициализирует right
. Вам нужно инициализировать конечные поля в этом и во всех конструкторах.