为什么Eclipse要求我在java代码中设置(任意)括号?

mzu*_*uba -2 java eclipse

我目前正在试图弄清楚如何使用Eclipse在java中编写Escape模型.我是Escape和Eclipse的新手,自从我用java编程以来已经有一段时间了,所以请原谅这是一个愚蠢的问题.

基本上,我一直被奇怪的Eclipse错误消息所困扰.我跟踪了最后一个问题:

这有效:

public class CoordinationGame extends Scape {

.
    .
    .
    Scape lattice;

boolean test;
int test2;

{
test = true;
test2 = 3;
}

{
lattice = new Scape(new Array2DVonNeumann());
}

}
Run Code Online (Sandbox Code Playgroud)

这给出了奇怪的错误消息:

public class CoordinationGame extends Scape {

    .
.
.

Scape lattice;

boolean test;
int test2;

test = true;
test2 = 3;

lattice = new Scape(new Array2DVonNeumann());
}
Run Code Online (Sandbox Code Playgroud)

{预期的int test2Syntax error on token "lattice", VariableDeclaratorId expected after this token.

正如我所说,Java已经有一段时间了,但是IIRC,这些括号不应该被要求.这个问题确定这个括号用法是一个初始化块,但这可能不是我想要做的.

有谁知道为什么Eclipse要求我设置这些括号,或者我可以做些什么来改变这种行为?

提前致谢!马丁

PS:一些可能有用的信息:

我使用eclipse-indigo,安装了建模工具包AMP.我不完全确定如何检查这个,但我相信我正在使用jre6,因为这是我在包浏览器的JRE系统库选项卡中所说的.将来,我计划找到一种使用Groovy运行Escape建模环境的方法,但这将是另一个问题......

Sea*_*oyd 5

这与您的IDE无关.Java不允许在类级别使用语句,但它允许在类级别使用初始化程序.

{foo();}
Run Code Online (Sandbox Code Playgroud)

这是一个实例初始化程序,它将由编译器复制到所有构造函数中.
(请参阅Java教程>初始化字段)

在Java中,您可以编写语句

  • 一个方法
  • 构造函数(这是一种特殊的方法)
  • 初始化块(静态或实例)

但没有其他地方.