【发布时间】:2012-07-20 19:07:20
【问题描述】:
我有一些代码,其中有一个需要冗长的类声明的变量。我想在页面顶部定义变量,然后像这样定义它:
private IFoo bar;
/* seemingly irrelevant code */
bar = new IFoo() { /* a bunch of stuff */ };
但是我的 Java 编译器抱怨这不可能发生。它说前面一行的} 有语法错误(这真的没有意义,因为它在正确的位置)。
所以为了让编译器安静下来,我将变量的定义放在了更多 { }
.我忘记了这种模式叫什么,但我知道它为什么存在并且在我的情况下不应该是必需的。
{
bar = new IFoo() { /* a bunch of stuff */ };
}
无论如何,我想我的问题是,为什么我不能这样做
bar = new IFoo(){}; 而不是
{ bar = new IFoo(){}; }
?
其他细节:IFoo 是一个接口,我在 Android 和 Eclipse 中使用 JDK 1.6。
立即定义 bar 就可以了:
private IFoo bar = new IFoo() { /* stuff */ };
【问题讨论】:
-
您可能需要考虑创建一个SSCCE。
-
我真的花了一些时间试图让这个问题看起来很漂亮.....
-
SSCCE 不是一个漂亮的问题,它是一个简短的代码示例,我们可以在我们的 IDE 中运行它来查看您所看到的确切问题。它可以帮助我们找出您的问题,以便我们可以更快地为您提供更好的答案
-
class c{private Object o;o=new Object();}