简单的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)

7个回答

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

 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);

    }

}
longlong3207
longlong3207 LoveSnowbear 说的对,null比较的时候会异常
2 年多之前 回复
String[]  hobbies;

这样声明数组

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

longlong3207
longlong3207 你试过那样写没?如果多余空间的话会用null补齐
2 年多之前 回复
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);

]

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问