Java在构造函数中初始化一个int数组

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (11)

我有一个班,我在这个班有这个:

 //some code
 private int[] data = new int[3];
 //some code

然后在我的构造函数中:

public Date(){
    data[0] = 0;
    data[1] = 0;
    data[2] = 0;
}

如果我这样做,一切都好。默认数据值被初始化,但如果我反而这样做:

public Date(){
    int[] data = {0,0,0};
}

它说:

Local variable hides a field

为什么?

什么是在构造函数中初始化数组的最佳方法?

提问于
用户回答回答于
private int[] data = new int[3];

这已经初始化你的数组元素为0.你不需要在构造函数中再次重复。

在你的构造函数中它应该是:

data = new int[]{0, 0, 0};
用户回答回答于

你可以做

public class Data {

  private int[] data;

  public Data() {

    data = new int[] { 0, 0, 0 };
  }
}

data在构造函数中初始化,或者

public class Data {

  private int[] data = new int[] {0,0,0};

  public Data() {

    // data already initialised
  }

}

data在构造函数中的代码执行之前初始化。

扫码关注云+社区