Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组初始化产生空指针异常_Java - Fatal编程技术网

Java 数组初始化产生空指针异常

Java 数组初始化产生空指针异常,java,Java,我最近在学习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++)

我最近在学习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);
} 
}
类平板电脑
{
字符串S=null;
无效集(字符串a)
{
S=a;
}
}
公开课问题
{
公共静态void main(字符串参数[])
{
片剂[]T=新片剂[6];
对于(int i=0;i您创建了一个数组(多个
Tablet
对象的持有者),但实际上您没有创建任何
Tablet
s进入其中。现在,
t
(实际上应该是小写;
t
看起来既像常量又像类型参数)包含以下内容:

T: {null, null, null, null, null, null}
您需要创建
新平板电脑
s并将其放入阵列中,可能如下所示:

for(int i = 0; i < array.length /* don't hardcode the size twice */; i++) {
    array[i] = new Tablet();
    array[i].set("111");
}
for(int i=0;i
您创建了一个数组(多个
平板电脑
对象的一个支架),但实际上没有创建任何
平板电脑
放入其中。现在,
t
(实际上应该是小写;
t
看起来既像常量又像类型参数)包含以下内容:

T: {null, null, null, null, null, null}
您需要创建
新平板电脑
s并将其放入阵列中,可能如下所示:

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

Tablet[] T = new Tablet[6];
您正在创建引用数组(即引用变量数组),这些引用不指向任何其他地方,即它们为空。您需要将对象分配给数组中上述创建的引用变量

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
    }
Tablet[]T=新的Tablet[6];
对于(int i=0;i当你这样做时

Tablet[] T = new Tablet[6];
您正在创建引用数组(即引用变量数组),这些引用不指向任何其他地方,即它们为空。您需要将对象分配给数组中上述创建的引用变量

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
    }
Tablet[]T=新的Tablet[6];

对于(inti=0;i您需要初始化数组的索引

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);
    }
}
类平板电脑{
字符串S=null;
无效集(字符串a){
S=a;
}
}
课堂提问{
公共静态void main(字符串参数[]){
片剂[]T=新片剂[6];
对于(int i=0;i<6;i++){
T[i]=新片剂();
T[i].set(“111”);//我在这里得到空指针异常
}
//溶液(T,6);
}
}

您需要初始化数组的索引

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);
    }
}
类平板电脑{
字符串S=null;
无效集(字符串a){
S=a;
}
}
课堂提问{
公共静态void main(字符串参数[]){
片剂[]T=新片剂[6];
对于(int i=0;i<6;i++){
T[i]=新片剂();
T[i].set(“111”);//我在这里得到空指针异常
}
//溶液(T,6);
}
}

您已经初始化了数组。但是,数组中的元素指向null。因此,很明显,如果您尝试对null指针调用方法,您将得到null指针异常。 必须使用new关键字初始化数组中的每个对象

在对变量执行任何函数之前,必须添加一个T[i]=new Tablet();来初始化该变量

T[i]=new Tablet();
T[i].set("111");

在for循环中执行此操作

您已经初始化了数组。但是,数组中的元素指向null。因此,很明显,如果您尝试对null指针调用方法,您将得到null指针异常。 必须使用new关键字初始化数组中的每个对象

在对变量执行任何函数之前,必须添加一个T[i]=new Tablet();来初始化该变量

T[i]=new Tablet();
T[i].set("111");

在for循环中执行此操作

初始化数组不会在每个索引处创建新对象。初始化数组不会在每个索引处创建新对象。