非法前瞻性参考

时间:2010-04-03 01:45:51

标签: java arrays static

当我尝试在我的程序中声明一个静态数组时,我收到一个静态前向引用错误,我不知道我在这里做错了什么......

static Square fieldGrid [ ] [ ] = new Square [ ROWSIZE ] [ COLSIZE ]; 

这就是我正在使用的。

4 个答案:

答案 0 :(得分:3)

首选语法为:

 static Square[][] fieldGrid = new Square [ ROWSIZE ] [ COLSIZE ];

此外,您是否在申报时声明并初始化了ROWSIZECOLSIZE

答案 1 :(得分:2)

在用于创建Square数组之前,需要初始化ROWSIZE和COLSIZE字段。 The Java Language Spec indicates why this restriction is in place

  

这些限制旨在在编译时捕获循环或其他格式错误的初始化。

答案 2 :(得分:1)

在此行之前声明并初始化了rowsize和colsize吗?由于它们是静态的,我认为声明的顺序很重要。

答案 3 :(得分:1)

我猜ROWSIZE和COLSIZE是静态的最终整数,它们在声明数组后被声明。更改顺序(首先声明并初始化ROWSIZE和COLSIZE),然后使用它们。