Java ArrayIndexOutofBounds检查大小后出现异常
我从适配器中的用户报告了此错误。我无法复制这个:Java ArrayIndexOutofBounds检查大小后出现异常,java,android,arrays,Java,Android,Arrays,我从适配器中的用户报告了此错误。我无法复制这个: java.lang.ArrayIndexOutOfBoundsException: length=8; index=8 在这条线上 if (columnas.get(column).getENTR() == 3) 但我不明白,因为我以前检查过if(columnas.size()>column)。如何修复此错误?下面是示例代码 private List<bdcolums> columnas = new ArrayList<bd
java.lang.ArrayIndexOutOfBoundsException: length=8; index=8
在这条线上
if (columnas.get(column).getENTR() == 3)
但我不明白,因为我以前检查过if(columnas.size()>column)
。如何修复此错误?下面是示例代码
private List<bdcolums> columnas = new ArrayList<bdcolums>();
private View getHeader(final int row, final int column, View convertView, final ViewGroup parent) {
final ViewHolder holder;
if (convertView == null || convertView != inflater.inflate(R.layout.item_table_header, parent, false)) {
convertView = inflater.inflate(R.layout.item_table_header, parent, false);
holder = new ViewHolder();
holder.header_desc = (TextView) convertView.findViewById(R.id.text2);
holder.header_nom = (TextView) convertView.findViewById(android.R.id.text1);
holder.header_img = (ImageView) convertView.findViewById(R.id.dibuheader);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
if (columnas.size() > column) {
if (columnas.get(column).getENTR() == 3) {
//do something
}
} else {
//do something
}
return convertView;
}
private List columns=new ArrayList();
私有视图getHeader(最终整型行、最终整型列、视图转换视图、最终视图组父视图){
最终持票人;
if(convertView==null | | convertView!=充气机.充气(R.layout.item_table_header,parent,false)){
convertView=充气机。充气(R.layout.item\u table\u标题,父项,false);
holder=新的ViewHolder();
holder.header_desc=(TextView)convertView.findViewById(R.id.text2);
holder.header_nom=(TextView)convertView.findViewById(android.R.id.text1);
holder.header\u img=(ImageView)convertView.findViewById(R.id.dibuheader);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
if(columnas.size()>列){
if(columnas.get(column.getENTR()==3){
//做点什么
}
}否则{
//做点什么
}
返回视图;
}
这是因为您的数组(列)被非法地址访问。尝试使用arrayList而不是array。并查看这些问题以获得进一步帮助
希望能有帮助……:) 请发布完整的堆栈跟踪。看起来一切都很好。可能异常发生在
getENTR()
方法中。你能发布更详细的stacktrace吗?你使用的是哪种适配器?这是一个多线程应用程序吗?如果ArrayList是在另一个线程中通过删除一个项目而修改的,恰好在检查之后和访问之前,那么您将得到此异常。请发布您的getENTR()
方法