Синтаксис "String @NotNull []" приводит к тому, что "@NotNull" неприменимо для использования типа "в плагине intellij IDEA - PullRequest
1 голос
/ 28 мая 2020

Я пытаюсь исправить несколько ошибок в старом плагине intellij IDEA с открытым исходным кодом ( CFML Plugin )

Следующий синтаксис появляется несколько раз в нескольких файлах и генерирует ошибка:

String @NotNull []

Вот как выглядит ошибка:

enter image description here

Пример взят из следующего файла: https://github.com/JetBrains/intellij-plugins/blob/master/CFML/src/com/intellij/coldFusion/model/CfmlUtil.java#L249

Что делает этот синтаксис? Я не нашел никакой информации о нем. Похоже, что @NotNull String[] будет делать то же самое без ошибки.

Как мне заставить это работать? Я выполнил инструкции по настройке для настройки разработки environment и точно создает проект плагина . Что в моей среде не хватает для запуска этого кода?

1 Ответ

1 голос
/ 28 мая 2020

Я подозреваю, что у вас не установлена ​​библиотека JetBrains Annotations. Следуйте инструкциям по установке здесь .

Синтаксис String @NotNull [] состоит из аннотации @NotNull, примененной к типу String[] . Обратите внимание, что это отличается от @NotNull String[], в котором @NotNull применяется только к типу String. Аннотация используется таким образом, чтобы сказать, что возвращаемый массив строк не будет нулевым, но строки внутри него могут быть.

Сравните:

  • @NotNull String @Nullable []: строки в возвращаемый массив не должен быть нулевым, но может быть возвращен нулевой массив.
  • @NotNull String @NotNull []: строки в возвращаемом массиве не должны быть нулевыми, и массив также должен быть ненулевым
  • @Nullable String @NotNull []: массив строк не должен быть нулевым, но строки внутри него могут быть нулевыми
  • @Nullable String @Nullable []: массив строк может быть нулевым, и в нем могут быть нулевые строки
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...