数组列表中的空指针异常 - 对象如何工作?[复制]

Null Pointer Exception in Array List- How do objects work? [duplicate]

提问人:LEARNWITHPASSION 提问时间:4/21/2021 最后编辑:LEARNWITHPASSION 更新时间:4/21/2021 访问量:153

问:

我有空指针异常。你能帮帮我吗? 我在数组列表中的对象有问题。我不知道问题出在哪里。

  • 主类

    公共类 JavaApplication3 {

     public static void main(String[] args) {
    
    
         ArrayList<user> object=new ArrayList<user>();
    
       user[] obj=new user[3];
    
        obj[0].setName("S");
    
        obj[0].setNumber(5);
    
          obj[1].setName("7");
    
        obj[1].setNumber(6);
         object.add(obj[0]);
    
           object.add(obj[1]);
        System.out.println(object.get(0).getName());
        System.out.println(object.get(1).getName());
    
    
    
    
    
     }
    

    }

  • 这是我的用户类:

    公共类用户 {

     private int no;
     private String name;
    
       public int getNo() {
         return this.no;
     }
    
     public void setNumber(int no) {
         this.no = no;
     }
    
    
     public String getName(){
    
     return this.name;
     }
    
     public void setName(String S){
    
         this.name=name;
    
     }
    

    }

这是我的错误:

Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
Exception in thread "main" java.lang.NullPointerException
    at javaapplication3.JavaApplication3.main(JavaApplication3.java:26)
C:\Users\User\AppData\Local\NetBeans\Cache\12.3\executor-snippets\run.xml:111: The following error occurred while executing this line:
C:\Users\User\AppData\Local\NetBeans\Cache\12.3\executor-snippets\run.xml:68: Java returned: 1
BUILD FAILED (total time: 0 seconds)
java swing 数组列表 nullPointerException

评论

1赞 aksappy 4/21/2021
您需要先实例化每个用户,然后才能设置任何属性。
0赞 dreamcrash 4/21/2021
您创建了一个用户数组 user[] obj=new user[3];,但您忘记为每个位置创建一个用户,例如 user[0] = new User();
0赞 LEARNWITHPASSION 4/21/2021
你能帮我修复代码吗?我绑定了 user[0]=new user();但仍然不起作用。
0赞 Vishal Torne 4/21/2021
用户类所需的构造函数。

答:

0赞 Abdalrhman Alkraien 4/21/2021 #1

只需将其从 S 转换为名称即可

 public void setName(String name){
    
        this.name=name;
    
    }

并更改此代码

ArrayList<user> object=new ArrayList<user>();
 user[] obj=new user[3]; 
obj[0]=new user(); 
obj[2]=new user(); 
obj[0].setName("S"); 
obj[0].setNumber(5);
 obj[1]=new user(); 
obj[1].setName("7");
 obj[1].setNumber(6); 
object.add(obj[0]); 
object.add(obj[1]);
 System.out.println(object.get(0).getName()); System.out.println(object.get(1).getName()); 

评论

0赞 LEARNWITHPASSION 4/21/2021
已经这样做了,但问题仍然存在——
0赞 Abdalrhman Alkraien 4/21/2021
ArrayList<user> object=new ArrayList<user>();user[] obj=新用户[3];obj[0]=新用户();obj[2]=新用户();obj[0].setName(“S”);obj[0].setNumber(5);obj[1]=新用户();obj[1].setName(“7”);obj[1].setNumber(6);对象.add(obj[0]);对象.add(obj[1]);System.out.println(对象.get(0).getName());System.out.println(对象.get(1).getName());
0赞 Abdalrhman Alkraien 4/21/2021
这解决了你的问题
0赞 Abdalrhman Alkraien 4/21/2021
您必须在代码中添加 obj[0]=new user();和 obj [1]=new user();