数组初始化给出空指针exception

我最近在学习Java并且正在尝试使用类。但是我无法初始化数组对象

class Tablet { String S = null; void set(String a) { S = a; } } public class questions { public static void main(String args[]) { Tablet[] T = new Tablet[6]; for(int i = 0;i<6;i++) { T[i].set("111"); // I get null pointer exception here } //solution(T,6); } } 

任何人都可以告诉我哪里出错了?

当你这样做

 Tablet[] T = new Tablet[6]; 

您正在创建引用数组(即引用变量数组) ,它们没有指向其他地方,即它们为null。您需要将对象分配给数组中上面创建的引用变量。

 Tablet[] T = new Tablet[6]; for(int i = 0;i<6;i++) { T[i]=new Tablet(); T[i].set("111"); // No Null Pointer Exception Now } 

您需要初始化数组的索引

 class Tablet { String S = null; void set(String a) { S = a; } } class questions { public static void main(String args[]) { Tablet[] T = new Tablet[6]; for (int i = 0; i < 6; i++) { T[i] = new Tablet(); T[i].set("111"); // I get null pointer exception here } //solution(T,6); } } 

您创建了一个数组(几个Tablet对象的持有者),但实际上并没有创建任何Tablet进入其中。 现在, T (实际上应该是小写; T看起来像是常量和类型参数)具有以下内容:

 T: {null, null, null, null, null, null} 

您需要创建new Tablet并将它们放入数组中,可能是这样的:

 for(int i = 0; i < array.length /* don't hardcode the size twice */; i++) { array[i] = new Tablet(); array[i].set("111"); }