Подтвердить что ты не робот

JSR305 против JSR308 (Аномалии типа Java). Что будет стандартом?

Кажется, существуют два разных JSR для аннотаций.

JSR-305: аннотации для обнаружения дефектов программного обеспечения (дополнительный ресурс)
JSR-308: аннотации к типам Java (дополнительный ресурс)

Оба кажутся ориентированными на статический анализ кода.

Знаете ли вы:

  • какой из них будет либо в Java SE 7, либо в Java EE 6?
  • как "стабильный" каждый JSR?
  • он заменяет (или устаревает) другой?
4b9b3361

Ответ 1

Я могу ответить на ваш последний вопрос. Это не одно и то же. 305 - это новые аннотации, в которых вы уже можете их разместить, что может помочь обеспечить прозрачность программ в дизайне по контрактной системе. Таким образом, если определенный метод не должен возвращать null или если какой-либо метод не должен никогда не принимать нулевой параметр, можно сказать системе, анализирующей аннотации, чтобы посмотреть этот конкретный случай на этот фрагмент кода.

308 - это возможность комментировать больше вещей, таких как общий параметр и тип. Я предполагаю, что основным преимуществом этого является возможность подавить предупреждение для конкретного типа, вместо того, чтобы объявлять локальную переменную для этой цели. Аннотации @SuppressWarnings уже существуют (тогда как JSR-305 будет искать новые), но в JSR-308 это может быть применено к большему количеству случаев.

В соответствии с this 308 будет частью Java7, что будет означать, что он вполне стабилен. JSR-305 отсутствует в списке, поэтому не похоже, что он перейдет в Java7.

Ответ 2

В соответствии с этим документом, обновленным в 2010-09-19 годах, JSR 308 является "Отложено на JDK 8 или новее": http://openjdk.java.net/projects/jdk7/features/

Ответ 3

Для будущих читателей JSR 308 интегрируется в Java 7. Некоторые из его изменений уже были перенесены на публичные бета-версии Java 7. Однако JSR305 не сделал разреза.