2012-02-01 42 views
1

下面兩個方法定義之間是否有區別? Eclipse不會抱怨他們中的任何一個。兩種方法實現之間的區別?

private void method1() { 
} 

private void method2() {  
}; 
+2

在這裏看到:http://stackoverflow.com/questions/2724371/when-would-you-put-a-semicolon-after-a-method-closing-brace 分號是語法允許的,但在這裏不是必須的,在這種情況下大多數人不會使用它。 – jham 2012-02-01 11:22:27

回答

4

分號是不是方法的一部分,所以該方法定義之間沒有區別。

分號只是類體的一部分。

class AClass { 
    private void method() { } 

    ; 
} 

這是等同的。

您可以將初始化語句放在類體中。它們在創建實例時執行。一個分號構成一個空的語句,所以它不是很有用。其他初始化更加有用:

class AClass { 
    private void method() { } 

    ; 

    int x = 5; 

    { 
     System.out.println("Hello world"); 
    } 

    int y = 5; ; ; 
} 
+0

這是什麼樣的代碼格式化? – 2012-02-01 11:26:56

+1

標準?那麼......大部分時間。空的陳述是無用的,所以我沒有把它們放在一個新的線上來證明它們沒有效果。但除此之外:http://www.oracle.com/technetwork/java/codeconventions-141270.html#18761 – 2012-02-01 11:32:16

+0

你是對的。我看起來很奇怪:) – 2012-02-01 11:33:08

6

;沒有幫助和傷害。它不屬於method2(),編譯器將忽略它。

1

該方法的右花括號後面不應該有分號。

但是,如果你這樣做,編譯器會認爲它是一個空的聲明,因此它不會給你任何問題。

1

句法糖。

(你總是可以運行javap以確保字節碼是相同的)

相關問題