Должен ли я сделать класс констант для моих аннотаций?

StackOverflow https://stackoverflow.com/questions/631550

  •  08-07-2019
  •  | 
  •  

Вопрос

Что лучше?

<Ол>
  • <код> @SuppressWarnings (& Quot; непроверенные & Quot;)
  • <код> @SuppressWarnings (AnnotationConstants.UNCHECKED)

    Где AnnotationConstants - это типичный класс констант ...

    public final class AnnotationConstants {
        private AnnotationConstants() { }
    
        public static final String UNCHECKED = "unchecked";
    
        ...
    }
    

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

  • Это было полезно?

    Решение

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

    Другие советы

    Я бы сказал немного об обоих, пожалуйста.

    В Spring вы могли бы сказать что-то вроде @Scope (Scopes.SESSION) или @Scope (Scopes.REQUEST), который придает аннотации особый тип поведения, поэтому я бы сказал всегда используйте класс констант, который хорош для прослеживаемости.

    Если вы просто подавляете предупреждения, маловероятно, что вы действительно захотите отследить это, так что просто следуйте буквальному.

    Я бы согласился с Holsam для SuppressWarnings - используйте строки

    Если вы пишете собственную аннотацию, я рекомендую по возможности использовать перечисления для вещей, которые могут быть представлены в виде набора констант

    Для @SuppressWarning и им подобных я так не думаю. Я предпочитаю писать константы напрямую, и компилятор проверяет их, если это возможно. Затмение делает хорошую работу в этом.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top