【问题标题】:2D boolean array creation and assigment.Compile time error2D 布尔数组创建和分配。编译时错误
【发布时间】:2012-04-18 00:39:23
【问题描述】:
public class Test {
    boolean[][] expectedResults = new boolean[8][2];
    expectedResults[0] = new boolean[] {false, false}; //00B
}       

给我以下编译时间错误:

test.java:3: ']' 预期
expectedResults[0] = new boolean[] {false, false}; //00B
^
test.java:3: ';'预计
expectedResults[0] = new boolean[] {false, false}; //00B
^
test.java:3:类型的非法开始 expectedResults[0] = new boolean[] {false, false}; //00B
^ test.java:3:预期 expectedResults[0] = new boolean[] {false, false}; //00B
^ test.java:3: ';'预期的 expectedResults[0] = new boolean[] {false, false}; //00B
^ test.java:3:类型的非法开始 expectedResults[0] = new boolean[] {false, false}; //00B
^ test.java:3:预期 expectedResults[0] = new boolean[] {false, false}; //00B
^ test.java:3: ';'预期的 expectedResults[0] = new boolean[] {false, false}; //00B
^ test.java:3:类型的非法开始 expectedResults[0] = new boolean[] {false, false}; //00B
^ test.java:3:预期 expectedResults[0] = new boolean[] {false, false}; //00B
^ test.java:3: ';'预期的 expectedResults[0] = new boolean[] {false, false}; //00B
^ test.java:4:预期的类、接口或枚举
}

已解决

必须在方法中!。

【问题讨论】:

  • 您尚未发布实际代码,因为它与错误消息不匹配。

标签: java arrays initialization boolean multidimensional-array


【解决方案1】:

语法是:

expectedResults[0] = new boolean[]{false, false};

另外,请确保在方法或静态初始化块内执行赋值。

【讨论】:

  • 见我回答的第二部分。它应该在一个方法中,而不仅仅是在类中。
【解决方案2】:

您可以创建这样的数组{false, false},只有当您将它与 decleration (Array constants can only be used in initializers) 放在同一行时:

boolean[] expectedResults = {false, false}; // complies

虽然这不能编译:

boolean[] expectedResults;
expectedResults = {false, false}; // does not complie

改为使用:

boolean[] expectedResults;
expectedResults = new boolean[]{false, false};

【讨论】:

    【解决方案3】:

    这是一个简单的 8x2 布尔数组初始化。

      public boolean[][] expectedResults = {
        {false, false},
        {false, false},
        {false, false},
        {false, false},
        {false, false},
        {false, false},
        {false, false},
        {false, false},
      };
    

    这是一个简单的 4x8 布尔数组初始化。

      public boolean[][] expectedResults = {
        {false, false, false, false, false, false, false, true},
        {true, false, false, false, false, false, false, true},
        {true, false, false, false, false, true, true, true},
        {false, true, true, true, true, true, true, false}
      };
    

    【讨论】:

      【解决方案4】:

      我认为你必须像这样初始化数组。

      boolean[][] expectedResults;
       expectedResults = new boolean[8][2];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-01
        • 2021-07-06
        • 1970-01-01
        • 2016-02-20
        • 2012-04-18
        • 2011-04-12
        • 1970-01-01
        • 2017-10-10
        相关资源
        最近更新 更多