Re: [問題] package 與 class 名稱相同問題
: 假設如下的程式碼:
:
: tw/sub1/test.java (package 為 tw.sub1)
:
: tw/sub2/test.java (package 為 tw.sub2)
: tw/sub2/tw.java (package 為 tw.sub2)
:
: 假設在 tw.sub2.test 裡使用 tw.sub1.test (已使用全名)
: 但因為 tw.sub2 下有 tw 這個 class
: 所以 compiler 會把 tw.sub1.test 的 tw 當成是 tw.sub2.tw
: 然後就抱怨找不到 sub1
:
: 想請問有重新命名之外的解決方法嗎?
: 謝謝
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 140.112.30.49
: → tkcn:使用的時候直接打全名 "tw.sub1.test" 07/08 17:59
: ^^
: 唔,我在文章裡有解釋, 這個 tw 會被 compiler 視為 tw.sub2.tw
: 所以會找不到 (因為不存在 tw.sub2.tw.sub1.test)
: ※ 編輯: HuangTzHuan 來自: 140.112.30.49 (07/08 18:07)
: → tkcn:你 compile 的方法不正確,先去查一下吧 07/08 18:10
抱歉,可以給點提示嗎?
compile 的指令為:
javac tw/sub2/test.java
如果 sub2/ 下沒有 tw.java,則一切正常
如果 sub2/ 下有 tw.java 會得到如下 error
$ javac tw/sub2/test.java
tw/sub2/test.java:10: cannot find symbol
symbol : class sub1
location: class tw.sub2.tw
tw.sub1.tw t = new tw.sub1.test();
^
tw/sub2/test.java:10: cannot find symbol
symbol : class sub1
location: class tw.sub2.tw
tw.sub1.tw t = new tw.sub1.test();
^
2 errors
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.49
※ 編輯: HuangTzHuan 來自: 140.112.30.49 (07/08 18:21)
→
07/08 19:12, , 1F
07/08 19:12, 1F
→
07/08 19:18, , 2F
07/08 19:18, 2F
→
07/08 21:24, , 3F
07/08 21:24, 3F
→
07/08 21:25, , 4F
07/08 21:25, 4F
推
07/11 15:16, , 5F
07/11 15:16, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 4 篇):