问题可能是
private static String [] intarrays1;
private static String [] intarrays2;
private static String [] intarrays3;他们都是没有分配memery的 在intsort()中 可能会使得 以上的三个变量 有一个或多个 没有被赋值 也就是 以上三个变量 还是没有分配到memery但是 Arrays.sort(intarrays1);
Arrays.sort(intarrays2);
Arrays.sort(intarrays3);
即对没有分配memery的变量进行了操作 所以有这样的错误不知道对不对!哈哈
private static String [] intarrays1;
private static String [] intarrays2;
private static String [] intarrays3;他们都是没有分配memery的 在intsort()中 可能会使得 以上的三个变量 有一个或多个 没有被赋值 也就是 以上三个变量 还是没有分配到memery但是 Arrays.sort(intarrays1);
Arrays.sort(intarrays2);
Arrays.sort(intarrays3);
即对没有分配memery的变量进行了操作 所以有这样的错误不知道对不对!哈哈
2个参数由intarrays2,...,是吧?
2.你应该如下实现:
class SortArgsInt
{
public static void intSort(String [] arrays)
{
intarrays = new String[]{ arrays.length };
for(int i = 0; i < arrays.length; i++)
{
intarrays1[i] = arrays[i];
}
Arrays.sort(intarrays1);
printArrays(intarrays1);
}
private static void printArrays(String [] args)
{
for(int i = 0; i < args.length; i++)
{
number = number + 1;
System.out.println(number + ":" + args[i]);
}
}
private static String [] intarrays1;
private static int l = -1;
private static int number;
}
class SortArgsInt
{
public static void intSort(String [] arrays)
{
intarrays = new String[arrays.length] ;
for(int i = 0; i < arrays.length; i++)
{
intarrays1[i] = arrays[i];
}
Arrays.sort(intarrays1);
printArrays(intarrays1);
}
private static void printArrays(String [] args)
{
for(int i = 0; i < args.length; i++)
{
number = number + 1;
System.out.println(number + ":" + args[i]);
}
}
private static String [] intarrays1;
private static int l = -1;
private static int number;
}
import java.util.Arrays;class SortArgsInt
{
public static void intSort(String [] arrays)
{
for(int i = 0; i < arrays.length; i++)
{
if(arrays[i].length() == 1)
{
l = l + 1;
intarrays1[l] = arrays[i];
}
else if(arrays[i].length() == 2)
{
m = m + 1;
intarrays2[m] = arrays[i];
}
else if(arrays[i].length() == 3)
{
n = n + 1;
intarrays3[n] = arrays[i];
}
}
if(intarrays1 != null){
Arrays.sort(intarrays1);printArrays(intarrays1);}
if(intarrays2 != null){
Arrays.sort(intarrays2);printArrays(intarrays2);}
if(intarrays3 != null){
Arrays.sort(intarrays3);printArrays(intarrays3);}
}
private static void printArrays(String [] args)
{
for(int i = 0; i < args.length; i++)
{
number = number + 1;
System.out.println(number + ":" + args[i]);
}
}
private static String [] intarrays1 =null;
private static String [] intarrays2 =null;
private static String [] intarrays3 = null;
private static int l = -1;
private static int m = -1;
private static int n = -1;
private static int number;
}public class sortExample extends SortArgsInt
{
public static void main(String [] args)
{
SortArgsInt.intSort(args); }
}
why?
真诚请教
你没有对private static String [] intarrays1;
private static String [] intarrays2;
private static String [] intarrays3;
进行初始化赋值,他们默认的值是null,应该对它们有个赋值语句
private static String [] intarrays1= new String[];
private static String [] intarrays2= new String[];
private static String [] intarrays3= new String[];
NullPointerException 就是对空对象进行了操作,一般是没有初始化实例造成的。
你把变量声明放在方法后面我觉得很别扭
当然你这里的变量都是 static。
如果不是 static 你的变量不都是提前引用了么?