Java的静态数组变量怎么初始化
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'].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的实例放进去,既然没有实例放进去当人不能调用实例的方法了