Re: @NotNull аннотации в рантайме
От: tonek  
Дата: 07.05.10 20:00
Оценка: 2 (1)
Здравствуйте, vsb, Вы писали:

vsb>Использую Intellij Idea.


vsb>Я думал, что это исключительно compile-time проверки, которые выдают предупреждения. Но запустив небольшой тестовый код и передав null в метод, принимающий @NotNull, я с удивлением поймал

vsb>
vsb>Exception in thread "main" java.lang.IllegalArgumentException: Argument 1 for @NotNull parameter of kz/kazbuy/util/ReflectionUtils.getClassList must not be null
vsb>    at test.ReflectionUtils.getClassList(ReflectionUtils.java)
vsb>    at test.ReflectionUtils.main(ReflectionUtils.java:122)
vsb>


vsb>Дизассемблер показывает небольшой пролог в функции, сгенерированный, как я понимаю, идеевским компилятором. Можно ли это как то повторить на билд-сервере без IDE? В принципе несложно написать транслятор, но, вероятно есть готовый, который я, почему то, не могу нагуглить.


Вместе с IDEA идет компилятор javac2 и ant-таска к нему. Если код на билд машине компилировать из ant'а с помощью javac2, то exception воспроизведется. Google, как ни странно, и правда очень мало об этом знает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.