如何解决IntelliJ中加载二维对象数组时的java.lang.NullPointerException
解决对象数组的java.lang.NullPointerException异常
问题出在你只初始化了对象数组本身,但数组中的每个元素并没有被实例化,也就是ListaKorisnika[id]的值是null,直接调用它的set方法必然触发空指针异常。单个对象能正常工作是因为你直接创建了类的实例,但数组里的每个位置都需要单独创建实例。
修复方法
在调用任何set方法之前,先为数组对应索引的位置创建类的实例。假设你的类名为Korisnik,修改后的代码如下:
public static void LoadKorisnike (int id, String ime, String prezime, String sifra){ // 先实例化数组对应位置的对象 ListaKorisnika[id] = new Korisnik(); ListaKorisnika[id].setSifra(sifra); ListaKorisnika[id].setUserName(ime+prezime+Integer.toString(id)); ListaKorisnika[id].setIme(ime); ListaKorisnika[id].setPrezime(prezime); };
额外注意事项
- 确保
ListaKorisnika数组本身已经完成初始化,比如执行过ListaKorisnika = new Korisnik[指定长度];,不然数组本身为null也会引发异常 - 验证传入的
id参数在数组的合法索引范围内(0到数组长度-1),避免触发数组越界异常
内容的提问来源于stack exchange,提问作者Kova
相关产品推荐
相关产品推荐

