Должен ли я сделать класс констант для моих аннотаций?
-
08-07-2019 - |
Вопрос
Что лучше?
<Ол> Где AnnotationConstants
- это типичный класс констант ...
public final class AnnotationConstants {
private AnnotationConstants() { }
public static final String UNCHECKED = "unchecked";
...
}
Я знаю, что существует множество общих аргументов за и против классов констант - и это именно то, что меня не интересует. Я хочу знать, является ли класс констант конкретно для аннотаций - хорошая или плохая идея.
Решение
Для этого конкретного примера я бы придерживался литералов. В конце концов, вы пытаетесь подавить предупреждения - если вы используете неправильный литерал, предупреждение не будет подавлено, что привлечет ваше внимание к проблеме.
Другие советы
Я бы сказал немного об обоих, пожалуйста. Р>
В Spring вы могли бы сказать что-то вроде @Scope (Scopes.SESSION) или @Scope (Scopes.REQUEST), который придает аннотации особый тип поведения, поэтому я бы сказал всегда используйте класс констант, который хорош для прослеживаемости. Р>
Если вы просто подавляете предупреждения, маловероятно, что вы действительно захотите отследить это, так что просто следуйте буквальному.
Я бы согласился с Holsam для SuppressWarnings - используйте строки
Если вы пишете собственную аннотацию, я рекомендую по возможности использовать перечисления для вещей, которые могут быть представлены в виде набора констант
Для @SuppressWarning
и им подобных я так не думаю. Я предпочитаю писать константы напрямую, и компилятор проверяет их, если это возможно. Затмение делает хорошую работу в этом.