简单的java程序编译失败

 package com.HelloWorld

import java.util.Arrays;

public class HelloWorld{
    public static void main(String[] args) {
        String hobbies[];
        hobbies = new String[5];
        hobbies [1] = "game";
        hobbies [2] = "fuck";
        hobbies [3] = "ok";
        hobbies [0] = "zoo";
        Arrays.sort(hobbies);
        String fuck;
        fuck = Arrays.toString(hobbies);
        System.out.println("The hobbies sorted is "+fuck);

    }
}
无法编译,错误提示:Exception in thread "main" java.lang.Error: Unresolved compilation problem: 

    at com.HelloWorld.HelloWorld.main(HelloWorld.java:6)

Arrays.sort方法的源码写着:参数是一个可以比较的数组,否则就会抛出异常。我觉得是null和string比较的时候出的错,因为你的hobbies[4]是空的。

String[]  hobbies;

这样声明数组

数组长度不能为5 改为4 就不会发生空指针异常

String[] hobbies  = new String[5]
  hobbies [1] = "game";
        hobbies [2] = "fuck";
        hobbies [3] = "ok";
        hobbies [0] = "zoo";
                Arrays.sort(hobbies);
                 String fuck;
        fuck = Arrays.toString(hobbies);
        System.out.println("The hobbies sorted is "+fuck);

]

 public class Test {

    public static void main(String[] args) {
        String[] hobbies  = new String[4];
                  hobbies [1] = "game";
                        hobbies [2] = "fuck";
                        hobbies [3] = "ok";
                        hobbies [0] = "zoo";
                                Arrays.sort(hobbies);
                                 String fuck;
                        fuck = Arrays.toString(hobbies);
                        System.out.println("The hobbies sorted is "+fuck);

    }

}

Arrays.toString(hobbies)返回的是一个 hobbies比较排序后的结果,是一个字符串数组 fuck = Arrays.toString(hobbies); fuck是一个字符串

在调用Array.sort()时 因为有一个元素是空 所以会报空指针异常 可以改变数组长度或者 赋空值
图片说明
图片说明