【问题标题】:Array Null Pointer Exception [duplicate]数组空指针异常[重复]
【发布时间】:2013-03-30 19:19:10
【问题描述】:

我在行得到一个空指针异常

if(names[j].compareTo(names[j+1]) > 0)

我不知道为什么。它可能与初始化有关,但我真的不知道它可能是什么

public static void item3(Profitable[] movies, Scanner input) {
    int j;
    boolean flag = true;
    String temp;
    String search;
    int low = 0;
    int high;
    int mid;

    String[] names = new String[6];

    for(int i = 0; i < 5; i++) {
        names[i] = ((Movie)movies[i]).getTitle();
    }

    high = names.length - 1;
    mid = (low + high) / 2;

    while(flag)
    {
        flag = false;
        for(j = 0; j < names.length - 1; j++)
        {

            if(names[j].compareTo(names[j+1]) > 0) {
                temp = names[j];
                names[j] = names[j+1];
                names[j+1] = temp;
                flag = true;
            }
        }
    }

    System.out.print("Enter your search term: ");
    search = input.nextLine();

}

【问题讨论】:

    标签: java arrays string nullpointerexception


    【解决方案1】:

    这个循环:

    for(int i = 0; i < 5; i++) {
        names[i] = ((Movie)movies[i]).getTitle();
    }
    

    只初始化前五个元素,但最后一个没有被初始化。

    【讨论】:

      【解决方案2】:
      for(int i = 0; i < 5; i++) { // only 5 iterations while names contain 6 elements
          names[i] = ((Movie)movies[i]).getTitle();
      }
      

      使用i &lt; names.length 总是比使用显式整数更好。

      for(int i = 0; i < names.length; i++)
      

      【讨论】:

        【解决方案3】:

        您也可以使用i &lt;= 5,但最好使用长度字段。

        【讨论】:

          猜你喜欢
          • 2014-02-04
          • 1970-01-01
          • 2014-07-28
          • 2016-04-28
          • 1970-01-01
          • 2014-10-16
          相关资源
          最近更新 更多