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、 gvoid dosomthing(@Size(2)int[]data){}
我正在使用dosomthing(new int[3])
进行调用,但当我这样做时,int[]data=new int[3]
然后将其传递给'dosmthing(data)`不会显示任何警告或错误。!