所以我一直在尝试获取它,以便任何类都可以访问我的数组,但我不确定我做错了什么。任何人都知道为什么这不起作用以及我需要更改什么?
class UnitBools {
public static boolean[] anArray;
public UnitBools(boolean[] anArray){
anArray = new boolean[10];
anArray[0] = false;
}
public boolean[] getArray(){
return anArray;
}
public UnitBools(){
UnitBools.anArray[0] = true;
}
public static void main(String[] args) {
System.out.println("Element at index 0: "+ UnitBools.anArray[0]);
}
}
现在我的 Sysout 正在返回线程异常。
感谢您的任何帮助。
因为anArray
是一个Object
,所以它的默认值为null
。您需要自己初始化anArray
,请尝试:
public static boolean[] anArray = new boolean[1];
或其他一些数字。[]
之间的数字表示数组的大小。从上面的语句来看,anArray
的大小为 1
这意味着它只有1
索引,即 0
。
你必须
初始化静态anArray
;也许是这样
private static boolean[] anArray;
static {
final int size = 10;
anArray = new boolean[size];
for (int i = 0; i < size; i++) {
anArray[i] = true;
}
}
public static boolean[] getArray() {
return anArray;
}
然后输出
true
使用您现有的main
方法。
您需要初始化构造函数之外的任何静态变量,因为无需该类的实例即可访问它们。
public class Test
{
public static void main(String[] args)
{
System.out.println("Element at index 0: " + UnitBools.anArray[0]);
}
}
class UnitBools
{
public static boolean[] anArray = {true, true};
public UnitBools()
{
//UnitBools.anArray[0] = true;
}
public UnitBools(boolean[] anArray)
{
//anArray = new boolean[10];
//anArray[0] = false;
}
public boolean[] getArray()
{
return anArray;
}
}