LINUX.ORG.RU
ФорумTalks

Тим ругает за такое ......


0

1

Меня ТЛ постоянно пинает что я пишу типа

final String someString = "bla-bla";

int recvData(final ArrayList<T>){
.........
}
Говорит что бы я final не писал, хотя эти данные меняться не будут. Кто прав? Если я :), то что ему за книгу показать где такое написано, или ещё что-то :)

тим неправ - щас так модно эти файналы везде расставлять - в эклипсе даже плагин есть специальный, чтобы он их везде автоматом добавлял где нужно при сохранении файла вместе с форматированием. работал в проекте, где расставление файналов как раз было правилом - сначала было непривычно, а теперь на код без них смотреть не могу - ощущения примерно такие же, как при взгляде на паблик-атрибут внутри класса - вроде если не хочется, то можно снаружи и не менять ведь напрямую, но глаза режет.

bender ★★★★★
()

А вы апи пишете или прикладную прогу?

Для апи вполне имеет смысл убирать файналы. Может какому-нибудь извращенцу понадобится рефлекшеном поправить что-нибудь. Например, если будет на основе этого писать бины. Или отнаследоваться от вашей работы, поменяв что-нибудь внутри, тогда вообще нужно везде напихать protected.

stevejobs ★★★★☆
()

final нужен в основном для того чтобы сделать видимым локальную переменную из анонимного класса. Если хочешь писать функционально - бери функциональный язык. Если хочешь много пустого бессмыссленного фана - бери С++.

Absurd ★★★
()
Ответ на: комментарий от Boy_from_Jungle

у меня вроде даже стандандартная жабская поставка. В настройках Java/Editor/Save Actions - включить нижнюю галку «Additional Actions» - там в списке есть «Add final modifier to private fields/method parameters/local variables» (все варианты см по кнопке Configure на вкладке Code Style).

bender ★★★★★
()

Моё ИМХО: только лишняя амортизация клавиатуры. ТимЛид прав, потому что клавиатуры на нём записаны и за перерасход с него начальство требует отчётов. Что он в отчёте напишет? Что ты везде писал Final?

name_no ★★
()
Ответ на: комментарий от stevejobs

Есть замечательные слова Линуса нашего Торвальдса - если я бы хотел писать безопасный код то писал бы я на Паскале

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от stevejobs

> что он писал безопасный код, в котором нельзя ковыряться рефлекшеном

и что, кому-то станет лучше от того, что кто-то другой не сможет ковыряться в твоём коде рефлекшеном?

name_no ★★
()

Я для локальных переменных и параметров везде пишу final. Снимаю только по мере необходимости.

Вообще я следую правилу о том, что всё, что можно делать final, нужно делать final. Классы, не предназначенные для переопределения, например.

LucidFox
()
Ответ на: комментарий от nanonymous

Я подумал что С++ Фигасе сахара понапихали, с таким количеством синтаксического сахара странно что ява не торт

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от DNA_Seq

Синтаксического сахара там как раз не очень много, увыЪ. Даже статической инициализации list'ов и map'ов нет (ждём Java 7), не говоря уже о лямбдах-шлямбдах (ждём Java 8).

Но из языков со статической типизацией это мой любимый.

LucidFox
()
Ответ на: комментарий от LucidFox

> Даже статической инициализации list'ов и map'ов нет

есть костыль! ))

public static final List<String> favorites =
Arrays.asList(«EJB», «JPA», «Glassfish», «NetBeans»);

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

Ну если уж на то пошло, есть Guava, где ImmutableList, и ImmutableMap, и статические функции вроде Lists.newArrayList() с инференцией типов, и прочие всякие вкусности.

Но это именно костыль. Вызванный в том числе тем, что нормальный API коллекций появился в Жабе сравнительно поздно.

LucidFox
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.