Аннотация поддержки Android «должна иметь @Retention(RetentionPolicy.SOURCE)»Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Аннотация поддержки Android «должна иметь @Retention(RetentionPolicy.SOURCE)»

Сообщение Anonymous »

Я использую аннотации @Retention и @StringDef для некоторых своих методов в библиотеке и получаю странное предупреждение, хочу понять.
В статическом классе SIP я использую эту аннотацию:

Код: Выделить всё

public static final String CODEC_SPEEX_16K  = "speex/16000/1";
public static final String CODEC_SPEEX_8K   = "speex/8000/1";
public static final String CODEC_SPEEX_32K  = "speex/32000/1";
public static final String CODEC_ILBC_8K    = "iLBC/8000/1";
public static final String CODEC_GSM_8K     = "GSM/8000/1";
public static final String CODEC_PCMU_8K    = "PCMU/8000/1";
public static final String CODEC_PCMA_8K    = "PCMA/8000/1";
public static final String CODEC_G722_16K   = "G722/16000/1";

@Retention(RetentionPolicy.CLASS)
@StringDef({
CODEC_SPEEX_16K,
CODEC_SPEEX_8K,
CODEC_SPEEX_32K,
CODEC_ILBC_8K,
CODEC_GSM_8K,
CODEC_PCMU_8K,
CODEC_PCMA_8K,
CODEC_G722_16K
})
public @interface CodecName {}
который компилируется нормально, без каких-либо предупреждений.

В статическом классе Tools я использую это аннотация:

Код: Выделить всё

public static final String RES_TYPE_STRING = "string";
public static final String RES_TYPE_DRAWABLE = "drawable";
public static final String RES_TYPE_LAYOUT = "layout";
public static final String RES_TYPE_VIEW = "id";
public static final String RES_TYPE_DIMEN = "dimen";
public static final String RES_TYPE_COLOR = "color";
public static final String RES_TYPE_ANIM = "anim";
public static final String RES_TYPE_MIPMAP = "mipmap";

@Retention(RetentionPolicy.CLASS)
@StringDef({
RES_TYPE_STRING,
RES_TYPE_DRAWABLE,
RES_TYPE_LAYOUT,
RES_TYPE_DIMEN,
RES_TYPE_COLOR,
RES_TYPE_ANIM,
RES_TYPE_VIEW,
RES_TYPE_MIPMAP
})
public @interface ResourceType {
}
и я получаю предупреждение:


Аннотация typedef .... Toolbox.Tools.ResourceType должен иметь
@Retention(RetentionPolicy.SOURCE)


Вроде бы некритично, все работает нормально .
Но может кто-нибудь объяснить мне, почему

Аннотация №1 не получает предупреждение ;

Аннотация №2 получает предупреждение;

Оба созданы одинаково, оба используются только в статическом контексте. С моей точки зрения, оба одинаковы.

Подробнее здесь: https://stackoverflow.com/questions/376 ... icy-source
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»