【问题标题】:How do I make it so I can access this array from any class?我如何做到这一点,以便我可以从任何类访问这个数组?
【发布时间】:2014-02-10 02:44:47
【问题描述】:

所以我一直在尝试获取它,以便任何类都可以访问我的数组,但我不确定我做错了什么。任何人都知道为什么这不起作用以及我需要改变什么?

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 正在返回一个线程异常。

感谢您的帮助。

【问题讨论】:

  • 异常是 NullPointerException 吗?

标签: java arrays inheritance boolean


【解决方案1】:

因为anArrayObject,所以它的默认值为null。你需要自己初始化anArray,试试:

public static boolean[] anArray = new boolean[1];

或其他一些数字。 [] 之间的数字代表数组的大小。从上面的语句来看,anArray 的大小为1,这意味着它只有1 索引,即0

【讨论】:

  • 不敢相信它这么简单,以为我可以用单独的方法实例化它。为您的帮助干杯。
【解决方案2】:

你必须初始化静态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 方法。

【讨论】:

    【解决方案3】:

    您需要在构造函数之外初始化任何静态变量,因为无需该类的实例即可访问它们。

    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;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-07
      • 2022-06-16
      • 1970-01-01
      • 2016-06-24
      • 2012-04-02
      • 1970-01-01
      • 2015-04-11
      • 1970-01-01
      相关资源
      最近更新 更多