Discussion:
[問題] 有點意外的識別字命名
(时间太久无法回复)
AI3767
2006-09-29 23:25:26 UTC
Permalink
最近買了一本很暢銷的SCJP來加強自己
第一章講到識別字命名規則時,
原以為自己早清楚了, 看到說開頭可以用 $ 符號時,
我愣了一下 @@...
因為nested class編譯出來後不是就是用 $ 做分隔嗎?
那怎麼還允許命名時可以使用 $ 符號

於是我就寫了程式
class J {
class $ { // J$_"$" => J$$
class $$ { // J$_"$"_$_"$$" => J$$$$$
}
}
class $$$ { // J$_"$$$" => J$$$$
}
}
嗯...果然可以...沒問題....

然後改一下
class JJ {
class $ { // J$_"$" => J$$
class $$ { // J$_"$"_$_"$$" => J$$$$$
}
}
class $$$$ { // J$_"$$$$" => J$$$$$
}
}
這可囧大了....
J.java:6: duplicate class: JJ.$$$$
class $$$$ {
^1 error

唉.....
沒試過還真不知道會這樣
命名規則好像訂的不太好啊 Orz


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.105.166
Believing is seeing! ^^
2006-09-30 01:50:49 UTC
Permalink
※ 引述《AI3767 (AI3767)》之銘言:
: 最近買了一本很暢銷的SCJP來加強自己
: 第一章講到識別字命名規則時,
: 原以為自己早清楚了, 看到說開頭可以用 $ 符號時,
: 我愣了一下 @@...
: 因為nested class編譯出來後不是就是用 $ 做分隔嗎?
: 那怎麼還允許命名時可以使用 $ 符號
: 於是我就寫了程式
[恕刪]
: 嗯...果然可以...沒問題....
: 然後改一下
: class JJ {
: class $ { // J$_"$" => J$$
: class $$ { // J$_"$"_$_"$$" => J$$$$$
: }
: }
: class $$$$ { // J$_"$$$$" => J$$$$$
: }
: }
: 這可囧大了....
: J.java:6: duplicate class: JJ.$$$$
: class $$$$ {
: ^1 error
: 唉.....
: 沒試過還真不知道會這樣
: 命名規則好像訂的不太好啊 Orz

  可以用不代表你就應該要用,以下是 JLS 中的說明:

  "... The $ character should be used only in mechanically generated
   source code or, rarely, to access preexisting names on legacy systems."

  http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.175.152.169

Loading...