2016-03-29 129 views
-3
class A { 
    public static class B { 
     private static String[] names; 
     public static void addName(int i, String name) { 
      names[i] = name; 
     } 
    } 
} 

调用A.B.addName(0,"test");会导致NullPointerException。我是Java新手,所以任何人都可以解释为什么?我想填充应用程序开头的names数组,并使A的所有实例使用相同的数据。调用静态子类的静态方法时出现NullPointerException

+0

如果你是新到Java,我不建议内部类(或静态类和变量),除非你知道你为什么需要他们 –

+0

@ cricket_007我没有新的节目,所以我知道为什么我需要它们,这只是我从未对Java做过任何事情。 – burtek

回答

1

你需要初始化一些大小的数组,否则它是空的。

private static String[] Names = new String[5]; 
+0

当然,这只是显而易见的。谢谢,我会尽快接受它。 – burtek