我有一个具有从特定接口实现的特定方法(管理数组)的类:
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中的异常
我做错了什么?
答案 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);
}
}