[已解决]Exception in thread “main” java.lang.NullPointerException问题
源代码:
public class MaoPao {
static class Stu
{
String name;
int score;
}
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int i=0;
int j=0;
Stu[] t = new Stu[1];
Stu[] a = new Stu[n];
for(i=0;i<n;i++)
{
a[i].name = input.next();
a[i].score = input.nextInt();
}
出现问题:
Exception in thread “main” java.lang.NullPointerException
问题出现位置:
Stu[] t = new Stu[1];
Stu[] a = new Stu[n];
for(i=0;i<n;i++)
{
a[i].name = input.next();
a[i].score = input.nextInt();
}
原因:
对于对象只进行了声明,在引用对象的变量前没有进行实例化
解决方法:
public class MaoPao {
static class Stu
{
String name;
int score;
}
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int i=0;
int j=0;
Stu[] t = new Stu[1];
t[0] = new Stu();
Stu[] a = new Stu[n];
//实例化数组对象
for(i=0;i<n;i++)
{
a[i] = new Stu();
}
for(i=0;i<n;i++)
{
a[i].name = input.next();
a[i].score = input.nextInt();
}
修改部分:
Stu[] t = new Stu[1];
//实例化
t[0] = new Stu();
Stu[] a = new Stu[n];
//实例化数组对象
for(i=0;i<n;i++)
{
a[i] = new Stu();
}