为 2D 数组的元素分配值时" ']' expected "错误



当我尝试为2d数组的元素赋值时,会出现"预期"错误。到目前为止,我已经尝试过;更改我的数组的数据类型,更改数组的名称,更改我的IDE(从Apache NetBeans到Eclipse。相同的错误,只是它说";"而不是"]"(

搜索了一下,但没有找到解决方案。这是代码示例;

EDIT:问题解决了,谢谢。

public class Datas{
    double[][] matrix= new double[2][2];
   matrix[0][0]=1;
   matrix[0][1]=1;
   matrix[0][2]=1;
   matrix[1][0]=1;
   matrix[1][1]=1;
   matrix[1][2]=1;
   matrix[2][0]=1;
   matrix[2][1]=1;
   matrix[2][2]=1;
     }

初始化应该在函数中。也许,对于您的用例,您可以在Constructor中完成。

public class Datas {
    double[][] matrix = new double[2][2];
    Datas() {
        matrix[0][0] = 1;
        matrix[0][1] = 1;
        matrix[0][2] = 1;
        matrix[1][0] = 1;
        matrix[1][1] = 1;
        matrix[1][2] = 1;
        matrix[2][0] = 1;
        matrix[2][1] = 1;
        matrix[2][2] = 1;
    }
}

除了double[][] matrix= new double[2][2];之外的每一行都必须驻留在一个方法中。

如果这是一个POJO,请将它们放在构造函数中。

public class Datas{
  double[][] matrix= new double[2][2];
  public Datas() {
    matrix[0][0]=1;
    matrix[0][1]=1;
    matrix[0][2]=1;
    matrix[1][0]=1;
    matrix[1][1]=1;
    matrix[1][2]=1;
    matrix[2][0]=1;
    matrix[2][1]=1;
    matrix[2][2]=1;
  }
}

否则,您将需要main。尽管-有更好/更容易的方法将2D数组中的每个值初始化为1:

Arrays.fill(matrix, 1);
Yo可以在类的构造函数中设置这些值
public class Datas {
    double[][] matrix = new double[2][2];
    public Datas() {
        matrix[0][0] = 1;
        matrix[0][1] = 1;
        matrix[0][2] = 1;
        matrix[1][0] = 1;
        matrix[1][1] = 1;
        matrix[1][2] = 1;
        matrix[2][0] = 1;
        matrix[2][1] = 1;
        matrix[2][2] = 1;
    }
}

作为创建构造函数的替代方法,您还可以在数组声明旁边使用实例初始化程序块:

public class Datas {
    double[][] matrix = new double[2][2];
    {
        matrix[0][0] = 1;
        matrix[0][1] = 1;
        matrix[0][2] = 1;
        matrix[1][0] = 1;
        matrix[1][1] = 1;
        matrix[1][2] = 1;
        matrix[2][0] = 1;
        matrix[2][1] = 1;
        matrix[2][2] = 1;
    }
}

相关内容

最新更新