public class Test{
int[] array = new int[10];
array[3] = 1;
}
这会一直给出语法错误(令牌上的语法错误“;”,{此标记后的预期)。是不可能只从数组中初始化一个元素?
答案 0 :(得分:1)
问题是你的类中有顶级代码,Java中不允许这样做。你可以像这样声明和初始化变量:
public class Test{
int[] array = new int[10]; // OK
}
但你不能执行其他陈述
public class Test{
int[] array = new int[10]; // OK
array[3] = 1; // Not OK
}
您可以将初始化语句放在实例初始化程序块{}
中:
public class Test{
int[] array = new int[10]; // OK
{
array[3] = 1; // OK
}
}
...或在构造函数方法中:
public class Test{
int[] array = new int[10]; // OK
public Test(){
array[3] = 1; // OK
}
}
答案 1 :(得分:0)
你有主要方法吗?
public static void main(String[] args){
}
如果你不需要。
在Java语言中,当您使用Java解释器执行类时,运行时系统首先调用类的main()方法。然后main()方法调用运行应用程序所需的所有其他方法。 如果您尝试使用没有main()方法的Java解释器运行类,则解释器会输出错误消息。
http://www.cs.princeton.edu/courses/archive/spr96/cs333/java/tutorial/java/anatomy/main.html
除了主要方法之外,您需要将该代码放在方法中,因为 在班级,只允许以下内容:
不允许使用语句,它们必须嵌套在其中一个语句中。
所以
public class Test{
int[] array = new int[10];
array[3] = 1;
}
没有工作,但是
public class Test{
int[] array = new int[10];
{ // this is a dynamic initializer,
// it runs after the constructor's
// first line
array[3] = 1;
}
}
意愿。但是,首选将初始化放在方法中。