2010-05-11 11 views
8

Zugegeben, er zeigte uns nicht tatsächlichen Code hier, nur erwähnt, ich fand es extrem bizarr.Ist dieser gültige Java-Code? Mein Lehrer behauptet, es ist, aber ich bin wirklich nicht so sicher

Zum Beispiel, nach dem, was er sagte, dies gilt Java ist:

public class Person 
{ 
    String Name; 
    int Age; 

    { 
     //These two braces just chilling together - VALID? :O 
    } 
} 
+9

Warum können Sie es nicht selbst kompilieren? – someguy

+5

Starten Sie Eclipse (oder eine andere IDE) und geben Sie es selbst aus - die IDE wird sich nicht beschweren. – bergyman

+0

Sicher - Probieren Sie es aus. Es ist in den meisten Sprachen gültig. Nun, die meisten, die ich entwickelt habe. Nur um sicher zu gehen, dass ich es in dem Code ausprobiert habe, den ich gerade geöffnet habe. –

Antwort

16

Ja - es ist die instance initializer. Sie können es auch zusammen mit anonymous subclasses für Double-Brace Initialization verwenden.

+0

Nicht mit einem Semikolon dazwischen. Die {} sind nur eine Bereichsdefinition. – vfilby

+5

Nein, nicht wenn es im Klassenkörper so herumschwebt - es ist ein leerer Instanzinitialisierer. Inside Methoden, dann ja, es ist eine Bereichsdefinition. – gustafc

+2

@vfilby: Nein, wenn es sich um einen Block innerhalb einer Klasse, aber nicht innerhalb einer Methode oder eines Konstruktors handelt, handelt es sich um einen Instanzinitialisierer. –