日期:2014-05-17  浏览次数:20663 次

Java的静态数组变量如何初始化
举例

class A{
    char ch;
    public void setCh(char _ch){
        this.ch = _ch;
    }
    public char getCh(){
        return this.ch;
    }
}

public class Test{

    static A arry[];
    public static void Init(){
        arry = new A[5];
        for(char ch = 'A'; ch < 'E'; ch++){
            arry[ch - 'A'].setCh(ch);
        }
    }

    public staitc void main(){
        Test.Init();
    }
}

运行的结果是Exception in thread "main" java.lang.NullPointerException,我觉得是静态数组
static A arry[]错了,但是不知道arry[]应该怎么初始化,求救!

------解决方案--------------------
数组中对象没有初始化。

还有main方法有问题。给你把编译问题改好了

class A {
char ch;

public void setCh(char _ch) {
this.ch = _ch;
}

public char getCh() {
return this.ch;
}
}

public class Test {

static A arry[];

public static void Init() {
arry = new A[5];
for (char ch = 'A'; ch < 'E'; ch++) {
arry[ch - 'A'] = new A();
arry[ch - 'A'].setCh(ch);
}
}

public static void main(String[] args) {
Test.Init();
}
}

------解决方案--------------------
	arry = new A[5];  //

for (char ch = 'A'; ch < 'E'; ch++) {
arry[ch - 'A'].setCh(ch);
}你只是说我数组放5个A但是并没有A的实例放进去,既然没有实例放进去当人不能调用实例的方法了