一个简单的Java程序报错NullPointerException

来源:百度知道 编辑:UC知道 时间:2024/05/29 04:52:24
import java.util.*;
class Names{//建一个Names类
private String name;
public void setName(String s){
name=new String(s);
}
public String getName(){
return name;
}

}
public class test {
public static void main(String[] args){
ArrayList als=new ArrayList();//新建arraylist
Names[] names=new Names[10];//建10个Names类
for(int i=1;i<10;i++){//
names[i].setName("digit"+i);//此处报错Exception in thread "main" java.lang.NullPointerException
als.add(names[i]);
}
for(int i=1;i<als.size();i++){//把放进arraylist的东西打印出来
System.out.print(((Names)als.get(i)).getName());
}
}
}
本人新学Java,写个小程序就出错,不知谁能帮忙看下

import java.util.*;
class Names{//建一个Names类
private String name;

public void setName(String s){
name=new String(s);
}

public String getName(){
return name;
}

}
public class test {
public static void main(String[] args){
ArrayList als=new ArrayList();//新建arraylist
Names[] names=new Names[10];//建10个Names类
for(int i=0;i<10;i++){//
names[i]= new Names();
names[i].setName("digit"+i);//此处报错Exception in thread "main" java.lang.NullPointerException
als.add(names[i]);
}
for(int i=0;i<als.size();i++){//把放进arraylist的东西打印出来
System.out.println(((Names)als.get(i)).getName());
}
}
}

主要是在for循环中添加一个names[i]= new Names();
这样对象才被实例化。
还有一些小问题,我也修改好了。
good luck to you!

for循环,如果从1开始就是<=10 如果从0开始 才是<10.

数组是从0开始的,类名开头字母大写

NullPointerException是变量没有指向对象