2014-12-06 48 views
1

我知道$可以用作Java中的方法名稱。還有什麼?還有什麼可以讓非凡的java方法名稱?

class MyClass { 
    String $() { 
     return "I've never been expected anyone would invoke me"; 
    } 
} 

這實際上是一個實際問題。我正在尋找除$之外的其他人。

+4

的JLS回答了這個有效的字符。你檢查了嗎?你顯然知道它的存在,因爲你用它作爲標籤。 – 2014-12-06 12:00:50

+0

我希望這是一個實際的問題!永遠不要寫方法的名字! – 2014-12-06 12:03:17

+0

更可能的是,這是一個考試問題。 – 2014-12-06 12:04:29

回答

6

方法名稱必須是有效的標識符。請參閱Java語言規範:3.8 Identifiers瞭解什麼是有效標識符。

標識符必須以「Java字母」開頭,其餘必須由「Java字母或數字」字符組成。

的JLS說:

通過 「Java字母」 包括大寫和小寫ASCII拉丁字母AZ(\ u0041- \ u005a)和AZ(\ u0061- \ u007a),並且,由於歷史的原因,ASCII下劃線(_或\ u005f)和美元符號($或\ u0024)。 $符號只能用於機械生成的源代碼,或者很少用於訪問原有系統上預先存在的名稱。

「Java數字」包括ASCII數字0-9(\ u0030- \ u0039)。

字母和數字可能來自整個Unicode字符集,它支持當今世界上大多數使用的寫腳本,包括中文,日文和韓文的大集合。這允許程序員在他們的程序中使用以其母語編寫的標識符。

注意,尤其是,它說,你不應該在你的源代碼使用$自己(即使它是允許的字符)。

+0

這也是我到達的地方。 – 2014-12-06 12:05:46

+0

那麼,你爲什麼然後問這個問題 - 你還有一個問題沒有回答? – Jesper 2014-12-06 12:06:25

+0

@Jesper我只是在等幾分鐘,我可以接受你的答案。 – 2014-12-06 12:07:22

1

下劃線_也是方法名

class MyClass { 
    static String _() { 
     return "I've never been expected anyone would invoke me"; 
    } 

    public static void main(String[] args) { 
     String s = _(); 
     System.out.println(s); 
    } 

} 

輸出

I've never been expected anyone would invoke me 
+0

請注意,作爲標識符的下劃線在8中產生警告,在9中產生錯誤。 – aioobe 2015-02-17 09:40:52

相關問題