繁体   English   中英

我怎么做到这样我可以从任何类访问这个数组?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM