Задал переменную так:
String result;
компилятор выдал ошибку.
А указал нулевое значение:
String result="";
и компилятор сработал без ошибки.
Эту переменную надо обязательно инциировать сразу?
Rustam-tam
19 уровень
инициализация переменной String
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
ГоффMaster
26 августа 2022, 17:59
Не обязательно, но компилятор смотрит, возможна ли теоретически ситуация, когда переменная останется неинициализированной.
Пройдёт компиляцию:
Не пройдёт:
Казалось бы - одно и тоже, но втором случае компилятор видит, что инициализация переменных сопряжена с условиями в ифах, и если ни один иф не сработает, то переменная останется не проинициализирована. Компилятор не оценивает сами условия, он смотрит только на конструкцию ифов.
А вот в первом случае переменная по-любому будет проинициализирована, поэтому код будет скомпилирован.
В принципе, если компилятор из-за этого отказывается компилировать, то надо проверить логику, она, скорее всего, хромает. Вот смотри сам - если число не больше нуля, то оно точно либо равно нулю, либо меньше нуля - нет нужды его, как это делается во втором примере, второй раз проверять.
0
НикитаExpert
26 августа 2022, 17:30
Если ее возвращает какой то метод то желательно, но есть и другие способы
0