JAVA - 初始化数组的各个元素时出现问题

时间:2010-08-13 04:01:34

标签: java arrays initialization

我对编程非常陌生,我必须在这里遗漏一些东西。第一部分有效。第二部分出现了错误。那是为什么?

// this works
private static int[] test2 = {1,2,3};

// this is ok
private static int[] test1 = new int[3];
// these three lines do not work
// tooltip states ... "cannot find symbol.  class test1. ']' expected."
test1[0] = 1;
test1[1] = 2;
test1[2] = 3;

3 个答案:

答案 0 :(得分:4)

根据您发布的内容,

test1[0] = 1;
test1[1] = 2;
test1[2] = 3;

需要在方法或构造函数中。看起来你在课堂上有他们。让我们说MyClass是你班级的名字。添加一个构造函数并将三个语句放在其中:

MyClass {
    test1[0] = 1;
    test1[1] = 2;
    test1[2] = 3;
}

编辑:您只能在类中直接声明变量。但是,声明语句还可以包含初始化(在同一行上):

int[] arrayA; // declare an array of integers
int[] arrayB = new int[5]; // declare and create an array of integers
int[] arrayC = {1, 2, 3}; // declare, create and initialize an array of integers

另一方面,以下内容不是声明,只涉及初始化:

arrayB[0] = 1;

所以它不能直接在课堂下。它必须包含在方法,构造函数或初始化块中。

另见:

Arrays Java tutorial at Oracle

答案 1 :(得分:2)

要使用java源文件必须是这样的:

public class Test
{
    // this works
    private static int[] test2 = {1,2,3};

    // this is ok
    private static int[] test1 = new int[3];

    public static void main( String args[] ){

        test1[0] = 1;
        test1[1] = 2;
        test1[2] = 3;
    }
}

答案 2 :(得分:1)

您还可以将代码放在静态初始化块中,该块在加载类时执行。

public class Test {
   // this works
   private static int[] test2 = {1,2,3};

   // this is ok
   private static int[] test1 = new int[3];

   static {
       test1[0] = 1;
       test1[1] = 2;
       test1[2] = 3;
   }
}