оба могут быть доступны во время выполнения в любом случае.
Это не то, что Javadoc говорит:
RUNTIME: аннотации должны быть записаны в файле класса компилятором и сохранены виртуальной машиной во время выполнения, поэтому они могут быть рефлексивно прочитаны .
CLASS: аннотации должны быть записаны в файле классов компилятором, но не требуется сохранять виртуальной машиной во время выполнения .
На практике я не знаю ни одного варианта использования для CLASS
. Было бы полезно, если бы вы хотели читать байт-код программно, а не через API загрузчика классов, но это очень специализированный случай, и я не знаю, почему вы просто не использовали бы RUNTIME
.
Как ни странно, CLASS
является поведением по умолчанию.