我正在编写代码以从文件中读取一些记录并以特殊方式对其进行排序。我试过这样的代码:

public class Main {

    static class judgement implements Comparable<judgement> {
        public int q;
        public int d;
        public int r;

        public int compareTo(judgement j) {
            int k = ((judgement) j).q;
            return 0;
        }
    }

    public static void method() throws Exception {
        judgement[] judgements;
        judgements = new judgement[18425];
        try {
            // fill the "judgements" array
        } finally {
            Arrays.sort(judgements);
        }
    }

    public static void main(String[] args) throws Exception {
        method();
    }


}

但是我在功能compareTo中收到错误NullPointerException。有人可以帮我解决这个问题吗?

最佳答案

您正在使用空值初始化数组。

judgements = new judgement[18425];


并且您没有检查比较中的空值。您必须使用if语句。

public int compareTo(judgement j) {
          int k =0;
    if(j!=null){
    k = ((judgement) j).q;
    }

                return 0;
            }

10-01 19:17