public static void main(String[] args) {
   Scanner scan=new Scanner(System.in);
   System.out.println("请输入要测试的作业的个数:");
   int n,i;
   n=scan.nextInt();
   int b[] = null,temp[] = null;
  
Work[] job= new Work[n];

int currentTime;
System.out.println("请分别输入每个作业的运行时间和到达时间:");
for(i=1;i<=n;i++){

job[i].starttime=0;
                job[i].endtime=0;
                job[i].roundtime=0;
                   System.out.println("WORK%d到达时间:\n");
                   job[i].arrivetime=scan.nextInt();
                   System.out.println("WORK%d运行时间:\n");
                   job[i].cputime=scan.nextInt();
            
}
这个程序中starttime,endtime什么的都在另一个友元类里,程序已经调到没有错误,但是一运行,走到第一个for循环,就会出现空指针错误。怎么回事呢?Java指针

解决方案 »

  1.   

    for(i=1;i<=n;i++)这句有问题吧?for(i=0;i<n;i++) 试试?
      

  2.   

    job对象数组的index应该从0开始的吧你从1开始,那么job【0】咋办肯定是空指针的啊  你试试看
      

  3.   


    感觉是这个的问题,声明开辟空间但没有赋值,所以系统添加默认值为null,因此就报了空指针。
    楼主可以利用循环添加work类型值。
    仅供参考
      

  4.   

    int n,i;
    Work[] job= new Work[n];
    只声明了 n 是int 型  但没有赋值!  数组默认为null!  当然报错了。
      

  5.   

    怎么说呢,job是个work型的对象,job里有5个数据成员,我想通过初始化job的数据成员从而初始化job对象,该怎么搬到呢?本来正确的方法是用get,set方法的,但是涉及到scanner,所以我想用手动输入的方式,所以到下面的输入的时候就开始报错了。有什么方法可以给job的数据成员赋值么?(运行时。)
      

  6.   


    可以在空白处写job[i] = new Work();