当我尝试为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);
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;
}
}