【脑壳都炸了】怎么增加非空的验证?求救

这四个值 会因为**登录账户的不同**,导致数组越界,我应该怎么去处理这样的问题?

0 2 4 5 四个get值都会出现。

图片说明
错误提示:图片说明

 if(peninfojs.size() != 0){
    String yuancheng = peninfojs.get(0) == null ? "" : peninfojs.get(0).getvalue();
    String shuaka = peninfojs.get(2) == null ? "" : peninfojs.get(0).getvalue();
    String moashu = peninfojs.get(4) == null ? "" : peninfojs.get(0).getvalue();
    String wx = peninfojs.get(5) == null ? "" : peninfojs.get(0).getvalue();
    map.put("yuancheng",yuancheng);
    ...
}
或者list这样用get取的时候也越界了,反正记不清了。这样写
if(peninfojs.size() != 0){
    int size = peninfojs.size();
    String yuancheng = 0 >= size  ? "" : peninfojs.get(0).getvalue();
    String shuaka = 2 >= size ? "" : peninfojs.get(0).getvalue();
    String moashu = 4 >= size ? "" : peninfojs.get(0).getvalue();
    String wx = 5 >= size ? "" : peninfojs.get(0).getvalue();
    map.put("yuancheng",yuancheng);
    ...
}
我用表达式判断的,用if也行

if (penInfoJs.size() >= 6)

你这个错误是由于你获取的list大小是4,也就是你能访问的位置为【0,1,2,3】,你这里在调用get(4)的时候就数组越界了。

数组越界,是指访问了超出数组定义的内容。

首先你必须确认penInfoJs这个容器大小是多少。
然后才能确认你能访问的区间。

比如说,你penInfoJs.get(5)的时候,你先不要用.getvalue()取值,而是用if(penInfoJs.get(5) == null)判断,
或者,进入判断后,先取出这个list的长度,当你取的下标大于等于长度的时候,就赋值为空

直接换成arraylist