数组传递类中的空指针异常

时间:2016-02-29 04:00:10

标签: arrays class exception null

所以我有一个项目需要一个扩展Number的泛型类,并且还会找到数组中最大和最小的值,所有值的平均值以及数组的大小。这似乎很容易实现,但是我甚至在将通用部分放在适当位置之前就遇到了问题,我在x.length处得到Null Pointer Exception的运行时错误,无论我调用哪个方法,总是在同一个地方。

 import java.util.Comparator;

public class test
{
   public int x[];

   public test(int x[])
   {

   }

   public void setx(int newx[])
   {
   x = newx;
   }

   public int[] getx()
   {
   return x;
   }



public int findSmallest()
{
  int i = 0;
  int temp = x[i];

  while (i < x.length)
  {
      i++;
      if(x[i] < temp)
      {
      temp = x[i];      
      }
      else
      {

      }

   }

   return temp;

   }



public int findLargest()
{
  int i = 0;
  int temp = x[i];


  while (i < x.length)
  {
      i++;
      if(x[i] > temp)
      {
         temp = x[i];
      }
      else
      {

      }

   }

   return temp;

   }

public double findMean()
{
  int i = 0;
  double sum = 0.0;
  double avg = 0.0;

  while (i < x.length)
  {
      sum += x[i];
      i++;
  }

  avg = sum / x.length;
  return avg;
}

public int findTotal()
{

  int i = x.length;

  return i;

}

public static void main (String args[])
{

int[] ia = {1, 2, 3, 4, 5, 6};

test intTest = new test(ia);

System.out.println(intTest.findTotal());

}


}



Any help on how to fix this would be amazing.

1 个答案:

答案 0 :(得分:0)

您忘记在构造函数中使用setx方法。您将整数数组传递给构造函数,但实际上并未初始化类中的整数数组。您可以通过在构造函数中调用setx方法并将整数数组x传递给setx方法来完成此操作。 希望这会有所帮助。