请问这个问题该怎么办?

img


在网上搜说是数组越界了啥的,这部分应该就是我出错的代码,我该怎么改?

@Service
public class PersonServiceImpl implements PersonService {
@Autowired
PersonDao personDao;
@Override
public List queryAllPerson() {
return personDao.queryAllPerson() ; }
@Override
public Person queryPersonByperson_id(Integer person_id) {
List persons = personDao.queryPersonByperson_id(person_id);
Person person = persons.get(0);
return person; }
@Override
public int updatePerson(Person person) {
return personDao.updatePerson(person); }
}

Person person = persons.get(0);
思考:如果persons数组为空,你get(0)拿的是不是第一个元素?既然数组都是空的,你再去取一个不存在的坐标中的元素,当然就报错喽。
正确的应该是这样的:

if(persons != null && persons.size() > 0){
    return persons.get(0);
}