提问人:LEARNWITHPASSION 提问时间:4/21/2021 最后编辑:LEARNWITHPASSION 更新时间:4/21/2021 访问量:153
数组列表中的空指针异常 - 对象如何工作?[复制]
Null Pointer Exception in Array List- How do objects work? [duplicate]
问:
我有空指针异常。你能帮帮我吗? 我在数组列表中的对象有问题。我不知道问题出在哪里。
主类
公共类 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)
答:
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();
评论