数组初始化给出空指针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"); }
- 在VIewPager(Android)中的两个片段之间传递数据(NullPointerException)
- 在Android中清除Glide图像缓存
- 如何在Firebase Android中查询SQL IN子句
- Java中的toPrecision()是否有等价物?
- Android – 将对象传递给另一个活动
- 处理图像时出现OutOfMemoryexception
- 在Android Studio中添加新模块时出现java.lang.NoClassDefFoundError:android.support.v4.app.NavUtilsJB错误
- 如何在Android中获取IST时区
- 如何更新Android应用程序中的SSL证书?