Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么将标识符传递给@size注释的方法不起作用?_Java_Android_Annotations_Java Annotations - Fatal编程技术网

Java 为什么将标识符传递给@size注释的方法不起作用?

Java 为什么将标识符传递给@size注释的方法不起作用?,java,android,annotations,java-annotations,Java,Android,Annotations,Java Annotations,这就是我要解决的问题 TextView[] containers=new TextView[2]; 我打电话的方式如下 compeletLogin(containers); 下面是方法声明 private void compeletLogin(@Size(2) TextView[] containers) { mEditTextName.setVisibility(View.GONE); mEditTextPass.setVisibility(View.GONE);

这就是我要解决的问题

TextView[] containers=new TextView[2];
我打电话的方式如下

compeletLogin(containers);
下面是方法声明

 private void compeletLogin(@Size(2) TextView[] containers) {
    mEditTextName.setVisibility(View.GONE);
    mEditTextPass.setVisibility(View.GONE);
    mButtonLogin.animate().translationY(200);
    mButtonLogin.setText(R.string.logout);
    mImageProfile.setVisibility(View.VISIBLE);
    mTextViewName.setVisibility(View.VISIBLE);
    mTextViewName.setText(name);
    for (TextView tv: containers){
        tv.setVisibility(View.GONE);
    }
}

但当我增加数组的长度时,它不会给我任何错误

AFAIK
@Size
仅适用于原始数据类型的收集或数组,如
int
float
double
long
String


它不适用于像
TextView

这样的对象。请尝试使用
@Size(max=2)
代替
@Size(2)

文档中没有明确说明@Size注释检查集合或数组的大小以及字符串的长度。@Size注释可用于验证以下质量:`@UrvishranaU yes。文档没有突出显示它。我已经试过了,似乎只适用于基本类型集合。您也可以尝试使用基元类型,它将按预期工作,但当我将形式参数作为任何标识符传递时,它将不起作用。e、 g
void dosomthing(@Size(2)int[]data){}
我正在使用
dosomthing(new int[3])
进行调用,但当我这样做时,
int[]data=new int[3]
然后将其传递给'dosmthing(data)`不会显示任何警告或错误。!