我有以下代码:

public static final String MY_CONSTANT_A = "A";
public static final String MY_CONSTANT_B = "B";

@StringDef(value={
        MY_CONSTANT_A,
        MY_CONSTANT_B
})
private @interface MyAnnotation{}

public static void someFunc(@MyAnnotation String str){

}


现在当我试图在someFunc中使用字符串时,我得到了下一个皮棉错误,除外:

java - 使用@StringDef为字符串数组自定义注释-LMLPHP

现在,当我将函数更改为String ... str im不再收到此lint错误时。

public static void someFunc(@MyAnnotation String... str){

}


java - 使用@StringDef为字符串数组自定义注释-LMLPHP

这是怎么做的?

最佳答案

据我所知,Varargs没有Support annotationStringDef也没有。 StringDef仅用于String数据类型,尚未扩展为Varargs。

该文档没有关于支持Varargs的任何内容:http://developer.android.com/reference/android/support/annotation/StringDef.html

10-07 19:47