我有一些代码,其中有一个需要冗长的类声明的变量。我想在页面顶部定义变量,然后像这样定义它:
private IFoo bar;
/* seemingly irrelevant code */
bar = new IFoo() { /* a bunch of stuff */ };
但是我的 Java 编译器抱怨这不可能发生。它说之前的行上有一个语法错误 }
(这真的没有意义,因为它在正确的位置)。
因此,为了让编译器安静下来,我将变量的定义放在了 more{ }
中。我忘记了这种模式叫什么,但我知道它为什么存在并且在我的情况下不应该真的是必需的。
{
bar = new IFoo() { /* a bunch of stuff */ };
}
无论如何,我想我的问题是,为什么我不能做
bar = new IFoo(){};
而不做
{ bar = new IFoo(){}; }
?
其他细节:IFoo
是一个接口,我使用 JDK 1.6 和 Android 和 Eclipse。
立即定义bar
效果很好:
private IFoo bar = new IFoo() { /* stuff */ };