2016-03-29 2 views

ответ

1

Да ... вид. Аннотации типа были введены в Java 8, поэтому они не работают вообще в Java 7. И реализация OpenJDK JSR 308, например, находится в OpenJDK 8 JDK. Поэтому вы не можете использовать это.

Но вы можете использовать фреймворк checker, который обходит это, позволяя вам комментировать аннотации типов в Java 7, но все равно использовать их. Установка описана here. Вам понадобится следующая Maven зависимость:

<dependency> 
    <groupId>org.checkerframework</groupId> 
    <artifactId>checker</artifactId> 
    <version>1.9.12</version> 
</dependency> 
+0

Спасибо. Я проверю это. – Aure77

0

Под «проект Java 7», я предполагаю, вы имеете в виду «проект, который может быть скомпилирован с помощью Java 7 компилятор». Аннотации типа - это функция Java 8 - например, lambdas, если вы их используете, то ваш код не может быть скомпилирован со стандартным компилятором Java 7.

Существует специальный компилятор type annotations compiler, который читает аннотации типов written in comments, например List</*@NonNull*/ String>. Когда вы компилируете такой файл с помощью обычного компилятора Java 7, этот компилятор игнорирует комментарии. Это как ваш код может использовать оба тип аннотаций и быть совместим с Java 7.

В Checker Framework пакетах специальный компилятора вместе с аннотациями процессорами, которые предупреждают о неправильных @NonNull аннотаций и о возможных исключениях нулевого указателя в коде. Вы можете увидеть его обсуждение annotations in comments.

Maven integration for the Checker Framework. Вы захотите выбрать направления Java 7.