Похоже, в JDK выбран довольно убогий способ справиться с задачей
Все мы любим покритиковать код, который был написан, когда мы ещё ходили под стол пешком. Но вопрос не в этом. Как правильно-то надо было сделать, расскажи нам :-)
Да, есть инспекции, а есть аннотаторы, и в некоторых языках почему-то используют аннотаторы, к которым по умолчанию нет механизма саппресса. Почему это так — для меня загадка. В джаве мы всё делаем инспекциями. Но если вы считаете, что у вас что-то подсвечивается неправильно, всегда можно написать баг-репорт или проголосовать за существующих. Про вашу проблему есть репорт?
В джаве return; посреди метода — это не предупреждение, а ошибка компиляции. Если вы совсем не хотите никаких ошибок видеть, а только подсветку синтаксиса, можно отключить гектора в статусной строке:
Только тогда уж оставьте анализ кода при коммите. А то очень часто бывает, что человек думает "ну я же прототипирую, сейчас буду писать коряво, потом исправлю", а в итоге этот корявый код так и живёт десять лет.
Вообще я на этапе прототипирования активно использую shelf или просто доверяю локальной истории и смело удаляю ненужные куски кода, потому что знаю, что смогу их восстановить. Так код выглядит гораздо чище.
Кстати, вот вы написали if (true && ...), а ведь это бесполезно. Вы хотели сделать ветку всегда истинной, но в итоге не сделали ничего. Надо было написать if (true || ...). Если вы эту ошибку сделали в редакторе Хабра, вы могли её сделать и в редакторе кода без встроенного статического анализатора. А анализатор подсветит по-разному: в первом случае выделит только true, а во втором — всё условие. Опытный пользователь сразу заметит ошибку, даже если использует подобные условия для прототипирования. В любом случае это полезная визуальная напоминалка, что эта ветка выполнится всегда. Она пригодится при отладке.
Ещё кстати в отладчике можно менять значения переменных, форсируя выполнение определённой ветки. Часто это гораздо удобнее, чем модифицировать код.
Вообще в этом случае мы всё равно по умолчанию ничего не напишем. Мы не предупреждаем обо всех возможных ошибках с nullability, иначе у вас бы был миллион мусорных предупреждений. Мы говорим только о вероятных ошибках. Про элемент массива мы бы сказали, если бы он был объявлен как @Nullable DriverPropertyInfo @Nullable [], то есть элементы были бы тоже аннотированы как Nullable.
Насчёт было мало. Docker/Kuber/DevOps — это конфа DevOops, которую проводили почти сразу после Джокера те же люди. Вроде эти вещи напрямую с джавой не связаны, надо идти на более профильные конференции. Для Machine learning, кажется, тоже что-то более профильное есть.
Вообще подобные штуки есть. Например, XML-файлы имеют стандартную XML-расцветку по умолчанию, но если это Ant build.xml или, например, plugin.xml из плагина к Идее, то это распознаётся, иконка меняется, дополнительные инспекции и возможности появляются.
Все мы любим покритиковать код, который был написан, когда мы ещё ходили под стол пешком. Но вопрос не в этом. Как правильно-то надо было сделать, расскажи нам :-)
Нет, не может быть. Это совсем бесполезно.
Метод и переменная очевидно не могут называться одними цифрами. Придумывать для типов и для переменных разный набор допустимых символов? Ради чего?
Простите, не мы, а вы.
Ты действительно хочешь жить в мире, где возможен подобный код? :-) Опасайтесь своих желаний!
Да, есть инспекции, а есть аннотаторы, и в некоторых языках почему-то используют аннотаторы, к которым по умолчанию нет механизма саппресса. Почему это так — для меня загадка. В джаве мы всё делаем инспекциями. Но если вы считаете, что у вас что-то подсвечивается неправильно, всегда можно написать баг-репорт или проголосовать за существующих. Про вашу проблему есть репорт?
В джаве
return;
посреди метода — это не предупреждение, а ошибка компиляции. Если вы совсем не хотите никаких ошибок видеть, а только подсветку синтаксиса, можно отключить гектора в статусной строке:Только тогда уж оставьте анализ кода при коммите. А то очень часто бывает, что человек думает "ну я же прототипирую, сейчас буду писать коряво, потом исправлю", а в итоге этот корявый код так и живёт десять лет.
Вообще я на этапе прототипирования активно использую shelf или просто доверяю локальной истории и смело удаляю ненужные куски кода, потому что знаю, что смогу их восстановить. Так код выглядит гораздо чище.
Кстати, вот вы написали
if (true && ...)
, а ведь это бесполезно. Вы хотели сделать ветку всегда истинной, но в итоге не сделали ничего. Надо было написатьif (true || ...)
. Если вы эту ошибку сделали в редакторе Хабра, вы могли её сделать и в редакторе кода без встроенного статического анализатора. А анализатор подсветит по-разному: в первом случае выделит толькоtrue
, а во втором — всё условие. Опытный пользователь сразу заметит ошибку, даже если использует подобные условия для прототипирования. В любом случае это полезная визуальная напоминалка, что эта ветка выполнится всегда. Она пригодится при отладке.Ещё кстати в отладчике можно менять значения переменных, форсируя выполнение определённой ветки. Часто это гораздо удобнее, чем модифицировать код.
Вообще в этом случае мы всё равно по умолчанию ничего не напишем. Мы не предупреждаем обо всех возможных ошибках с nullability, иначе у вас бы был миллион мусорных предупреждений. Мы говорим только о вероятных ошибках. Про элемент массива мы бы сказали, если бы он был объявлен как
@Nullable DriverPropertyInfo @Nullable []
, то есть элементы были бы тоже аннотированы как Nullable.Спасибо за баг-репорт. Это новая фича in-place refactoring пока не отлажена, в 2020.1 EAP ещё часто падает. В 2019.3 таких проблем нет.
Этой фиче сто лет в обед.
Только сейчас понял, что там ещё и QR-код палит :-)
Стоило просто обрезать верх и низ окна :-)
Кстати, IntelliJ IDEA умеет переписать за вас свитч по классам. Так что смело свитчуйтесь по любым объектам, IDEA всё поправит:
Результат:
Всё то вы про меня знаете. Иногда бывает надо куда-нибудь съездить.
Насчёт было мало. Docker/Kuber/DevOps — это конфа DevOops, которую проводили почти сразу после Джокера те же люди. Вроде эти вещи напрямую с джавой не связаны, надо идти на более профильные конференции. Для Machine learning, кажется, тоже что-то более профильное есть.
Сегодня не рулил, пешком ходил.
Митя — прекрасный программист и отличный товарищ!
Вообще подобные штуки есть. Например, XML-файлы имеют стандартную XML-расцветку по умолчанию, но если это Ant build.xml или, например, plugin.xml из плагина к Идее, то это распознаётся, иконка меняется, дополнительные инспекции и возможности появляются.
Вечно у тебя всё в мрачном свете! То шрифт плохой, то Идея глючит, то Тагир катится по наклонной!
Легко отвечу здесь: когда вы напишете плагин, тогда и появится.