2013-03-07 46 views
3

在Java標識符中使用這些不常見字符有什麼用處嗎? 從Java Language Specification

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

這是否意味着這些字符已過時?或者他們只是保留給特殊用例。 _通常用於靜態字段名稱。

我正在試圖建立一個小型的庫,它將根據字段和方法名稱的行爲。它將接收對象解析其字段名稱並決定如何行動。
我也可以使用註釋。但是在序列化(JAXB等)方面存在困難。而且使用描述性字段名稱(Convention over Configuration)有時更容易和更快捷。所以這些很少使用的字符在這種情況下可能會有用。

UPDATE

我故意沒有提到Unicode字符。我認爲標識符名稱中的unicode字符至少不合適。

+2

還有更多有效字符 – assylias 2013-03-07 19:14:18

+0

我想你也可以使用除第一個字符以外的數字。 – 2013-03-07 19:17:16

+1

您可以使用任何Unicode字母,關於'à'。 – 2013-03-07 19:17:54

回答

2

下劃線非常好。雖然我會避免$。 $name可能與某些隱藏/生成的字段衝突。

如果您的圖書館要求用戶類中的特殊字段用下劃線標記,那很可能。但你可以想象,兩個圖書館有類似的要求,併發生衝突。

+0

某些Java商店使用下劃線前綴來表示類全局字段。出於某種原因,這些商店對「這個」感到厭惡。 – 2013-03-07 19:19:00

+1

@GilbertLeBlanc:他們可能借用了C約定中的一些結構字段,使用下劃線標記爲「private」。 (這實際上並不妨礙其他代碼訪問這些字段,但它清楚地表明他們不應該這樣做。)在Java中,人們通常將* all *字段設置爲私有的,因此這種約定變得不那麼有意義。 – ruakh 2013-03-07 19:26:20