長いクラス宣言を必要とする変数があるコードがあります。ページの上部で変数を定義し、後で次のように定義したいと思います。
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
インターフェースです。AndroidとEclipseでJDK1.6を使用しています。
bar
すぐに定義すると問題なく機能します。
private IFoo bar = new IFoo() { /* stuff */ };