powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Плохо ли объявлять локальные переменные в методе?
22 сообщений из 22, страница 1 из 1
Плохо ли объявлять локальные переменные в методе?
    #33278897
Sashich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так вот. eclipse выдаёт вот такие предупреждения:
Код: plaintext
The local variable х_variable is hiding a field from type x_class
Их можно отключить. Но вопрос остаётся.
Или это всего лишь 'правила кодирования'?
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33278986
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что смущает?
заведите переменную с другим именем
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33279018
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashichТак вот. eclipse выдаёт вот такие предупреждения:
Код: plaintext
The local variable х_variable is hiding a field from type x_class
Их можно отключить. Но вопрос остаётся.
Или это всего лишь 'правила кодирования'?
Опасности тут никакой нет. Хочешь поиметь доступ к локальной переменной - пишешь х_variable, хочешь поле класса - пишешь this.х_variable.
Предупреждение это нужно для наших индусских и китайских братьев, там что если ты не индус и не китаец то отключай.
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33279039
Sashich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Ильич
Предупреждение это нужно для наших индусских и китайских братьев, там что если ты не индус и не китаец то отключай.

Смело!
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33279080
Сергей Ильич SashichТак вот. eclipse выдаёт вот такие предупреждения:
Код: plaintext
The local variable х_variable is hiding a field from type x_class
Их можно отключить. Но вопрос остаётся.
Или это всего лишь 'правила кодирования'?
Опасности тут никакой нет. Хочешь поиметь доступ к локальной переменной - пишешь х_variable, хочешь поле класса - пишешь this.х_variable.
Предупреждение это нужно для наших индусских и китайских братьев, там что если ты не индус и не китаец то отключай.

Серёга, ты не прав.

Зачем запутывать код?
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33279092
Фотография www.fun4me.narod.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
китайско-индусский бог
Серёга, ты не прав.

Зачем запутывать код?

Прав он. У меня всегда переменные одинаково называются - зачем запутывать код?
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33279104
GMax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, Вы оба правы (или не правы). Никакой разницы как писать. Кому как нравится и у кого как принято.
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33279721
www.fun4me.narod.ru китайско-индусский бог
Серёга, ты не прав.

Зачем запутывать код?

Прав он. У меня всегда переменные одинаково называются - зачем запутывать код?

Йоу...

Давай, открой метод на 1к строк и кучей локальных перменных и по ищи, где кто объявлется, где кто перекрывается и т.д.
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33279756
Фотография Кувалдин Роман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
трижды воззвавший к разуму www.fun4me.narod.ru китайско-индусский бог
Серёга, ты не прав.

Зачем запутывать код?

Прав он. У меня всегда переменные одинаково называются - зачем запутывать код?

Йоу...

Давай, открой метод на 1к строк и кучей локальных перменных и по ищи, где кто объявлется, где кто перекрывается и т.д.

Легко. В большинстве сред тыкаешь в переменную, выбираешь Find usages или что-нибудь подобное, смотришь, в каких методах она объявляется и где используется.
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33279774
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДавай, открой метод на 1к строк...
Гы...
А давай не будем писать такие методы?
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33279779
Фотография www.fun4me.narod.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
трижды воззвавший к разумуДавай, открой метод на 1к строк и кучей локальных перменных и по ищи, где кто объявлется, где кто перекрывается и т.д.

Обычно у меня локальные переменные, перекрывающие другие переменные живут не более 10 строк. Для длинных методов желания перекрывать переменные не возникало почему-то...
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33280493
wessen авторДавай, открой метод на 1к строк...
Гы...
А давай не будем писать такие методы?

Гы...
А давай заказчика, который приходит с таким кодом и просит поддержки, не будем так сразу посылать на йух?

Кувалдин Роман
Легко. В большинстве сред тыкаешь в переменную, выбираешь Find usages или что-нибудь подобное, смотришь, в каких методах она объявляется и где используется.


Более того, в IDEA даже выбирать ничего не надо, поля класса подсвечены другим цветом. Но во всяких эклипсах - разбираться в подобных хитросплетениях лишний геммморррой. (Если кому-то нравится иметь г-й, это не значит, что это естественно и требует поощрения).

Возвращаясь к теме.

Нормально:
Код: plaintext
1.
2.
3.
 public   void  setName(String name) {
   this .name = name;
}

Отстой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 public   void  doSmth() {
   String name = "xxx";
    for ( char  c:  this .name.toCharArray()) {
         name +=c+ 1 ;
   }
    this .name += name;
    this .name =   this .name.replace('-', '_'); 
    if  ( this .name.length() >  20 ) {
       name =  this .name.substring( 20 )
   }
    this .name = name.trim();
}
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33281016
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
китайско-индусский бог Сергей Ильич
Опасности тут никакой нет. Хочешь поиметь доступ к локальной переменной - пишешь х_variable, хочешь поле класса - пишешь this.х_variable.
Предупреждение это нужно для наших индусских и китайских братьев, там что если ты не индус и не китаец то отключай.

Серёга, ты не прав.

Зачем запутывать код?
То, что большинство стандартов кодирования требет префикса - это другой разговор.
Речь шла об опасности такого перекрытия. Так опасности нет никакой. Scoping Rules у Джавы очень просты, хорошо известны и работают безупречно.
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33281032
Naug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Причём тут опасность? Это не баг, а фича. Просто с учётом что неизвестно кому через неизвестно сколько времени придётся разбираться в этом коде злоупотребление этой фичей - невежливо.
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33281073
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NaugПричём тут опасность? Это не баг, а фича. Просто с учётом что неизвестно кому через неизвестно сколько времени придётся разбираться в этом коде злоупотребление этой фичей - невежливо.

Какие могут быть сложности с разбором в таком коде (пример коллеги):

Код: plaintext
1.
2.
3.
 public   void  setName(String name) {
   this .name = name;
}

И почему я должен видеть в нем ворнинг?
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33281220
Сергей ИльичИ почему я должен видеть в нем ворнинг?

А почему я не должен видеть тут ворнинг?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 public   void  doSmth() {
   String name = "xxx";
    for ( char  c:  this .name.toCharArray()) {
         name +=c+ 1 ;
   }
    this .name += name;
    this .name =   this .name.replace('-', '_'); 
    if  ( this .name.length() >  20 ) {
       name =  this .name.substring( 20 )
   }
    this .name = name.trim();
}
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33282232
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рождение невиданного чуда Сергей ИльичИ почему я должен видеть в нем ворнинг?

А почему я не должен видеть тут ворнинг?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 public   void  doSmth() {
   String name = "xxx";
    for ( char  c:  this .name.toCharArray()) {
         name +=c+ 1 ;
   }
    this .name += name;
    this .name =   this .name.replace('-', '_'); 
    if  ( this .name.length() >  20 ) {
       name =  this .name.substring( 20 )
   }
    this .name = name.trim();
}

Те, кто так пишут, на ворнинги никогда не обращают внимания, так что тут ворнинги неэффективны.
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33282244
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Гы...
А давай заказчика, который приходит с таким кодом и просит поддержки, не будем так сразу посылать на йух?


Давай не будем, но подзатыльник я бы дал, на будущее....
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33282290
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для таких кодов в Идее есть волшебная кнопочка Refactor->Rename...
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33282296
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зашедший
> Для таких кодов в Идее есть волшебная кнопочка
> Refactor->Rename...


быстрее: shift+F6

-----------------------------------
The Bat + My Gate

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33282327
Naug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ почему я должен видеть в нем ворнинг?
1)Ворнинги они на то и ворнинги что иногда можно сделать так, иногда этак но для большинства людей(под большинством я имею в виду не только китайцев) полезно напоминание что этот выбор должен быть сделан и неплохоб обратить на него внимание. И вообще - не нравится не смотрите.


авторИли это всего лишь 'правила кодирования'?
2) Почему так принибрежительно о практике хорошего кода?
...
Рейтинг: 0 / 0
Плохо ли объявлять локальные переменные в методе?
    #33283705
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Naug авторИ почему я должен видеть в нем ворнинг?
1)Ворнинги они на то и ворнинги что иногда можно сделать так, иногда этак но для большинства людей(под большинством я имею в виду не только китайцев) полезно напоминание что этот выбор должен быть сделан и неплохоб обратить на него внимание. И вообще - не нравится не смотрите.

Нет уж мы смотрим. Ворнинги свидетельствуют об очень серьезной ошибке, которая хотя и допускается языком, но почти стопроцентно приведет к плохим последствиям. Пример ворнинга - это испльзование deprecated метода, к примеру. Я ищо со времен С++ уровень ворнингов выставляю на максимум. Перекрытие переменной другим scope - это ворнинга не заслуживает.
Naug
авторИли это всего лишь 'правила кодирования'?
2) Почему так принибрежительно о практике хорошего кода?
Можно написать как угодно кондово и в полном согласии с любым checkstyle.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Плохо ли объявлять локальные переменные в методе?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]