2016-01-12 2 views
0

Стандарты кодирования моей компании диктуют, что все переменные/поля и т. Д. Должны быть назначены при объявлении (с хотя бы нулевым, если еще нет фактического значения).Инспекция для обеспечения инициализации всех объявлений переменных

Есть ли инспекция Intellij, которая будет выделять, когда переменная была объявлена ​​без назначения в той же операции?

Редактировать: Я знаю, что сам стандарт не является лучшим стандартом. Как я уже сказал в комментарии, многие наши стандарты кодирования Java основаны на соглашениях C и прихотях генерального директора. Я не ищу ответа на правильность стандарта (и я не говорю, что вы ошибаетесь, но вы все равно проповедуете хор), но для пути, в Intellij, я могу облегчить некоторые от хлопот, которые я получаю, когда приходит время для обзоров кода, если бы это уже указывало мне Intellij.

+1

Обратите внимание, что такой стандарт кодирования может быть * вредным *. Если ваш компилятор может обнаружить пути, в которых переменная используется неинициализирована, вы не позволили ей это сделать и переместили обнаружение ошибки с момента компиляции во время выполнения. –

ответ

0

В java нет необходимости. Прочитано JLS 4.12.5.

Вы всегда можете сказать своему боссу, что объект и класс переменных (полей и статических полей) всегда инициируются значение по умолчанию: null для ссылок, 0 для примитивов и false для boolean типа. Поэтому явная их повторная инициализация с значениями null или 0 является избыточной.

Для локальных переменных, которые не инициализированы Intellij IDEA указывает на их использование с подсветкой в ​​стиле ошибки, поскольку это ошибка времени компиляции, если вы используете значение переменной, которое ранее не было инициализировано.

+0

Я понимаю, что это не обязательно, но я уже шел по этому пути, пытаясь убедить их в этом. Многие старшие люди все еще кодируются в Vim/Emacs, и аргумент гласит, что это более понятно. В любом случае, я не в состоянии изменить стандарты кодирования. – Kialandei

+0

Если они это сделают, они не знают спецификации java. Он не связан с IDE – Andremoniy

+0

. Я знаю, что они этого не делают, многие стандарты кодирования, которые мы используем для Java-кода, основаны на соглашениях C, вы проповедуете хор по правильности стандартов, я просто ищет что-то, что облегчит некоторые из моих хлопот, когда придет время для проверки кода. – Kialandei