[英]How do I make it so I can access this array from any class?
所以我一直在尝试这样,所以我的数组可以被任何类访问,我不知道我做错了什么。 任何人都知道为什么这不起作用,我需要改变什么?
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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.