Java:使用已实现方法的类中的方法

时间:2015-05-04 22:51:21

标签: java interface implementation

我有一个具有从特定接口实现的特定方法(管理数组)的类:

public class ArraySort implements sortAndUnsort {
    public int test(int a) {
        return a;
    }

    public int[] sortInsertion(int[] array) {
        int j;     // the number of items sorted so far
        int key;   // the item to be inserted
        int i;  

        // Start with 1 (not 0)
        for (j = 1; j < array.length; j++)
        {
            key = array[ j ];

            // Smaller values are moving up
            for(i = j - 1; (i >= 0) && (array[ i ] < key); i--)
            {
                array[ i+1 ] = array[ i ];
            }

            // Put the key in its proper location
            array[ i+1 ] = key;
        }

        return array;
    }
}

我希望能够使用main方法从另一个类插入数组:

public class ArraySortTest {
    private static ArraySort jokey;
    private static int[] joke2s;
    public static void main(String[] args) {
        System.out.println("Hey there.");

        int[] joke = {0, 9, 7, 4, 5};
        int[] b = jokey.sortInsertion(joke);
        System.out.println(b);
    }
}

但我明白了:

  

ArraySortTest.main(ArraySortTest.java:10)中的线程“main”java.lang.NullPointerException中的异常

我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果没有显式初始化Object字段,它将默认为null,这就是当您尝试调用sortInsertion时获得空指针异常的原因。您可以使用jokey的新实例静态初始化ArraySort,如下所示:

public class ArraySortTest {
    private static ArraySort jokey = new ArraySort();
    private static int[] joke2s;
    public static void main(String[] args) {
        System.out.println("Hey there.");

        int[] joke = {0, 9, 7, 4, 5};
        int[] b = jokey.sortInsertion(joke);
        System.out.println(b);
    }
}