java: 包內的類不能引用默認包中的類


用Eclipse寫程序時,發現一個問題:當一個位於某個包中的類 (代碼頂端 有 package xxx;) 訪問 默認包中的類 (代碼頂端沒有 pacakge xxx;) 時, 代碼檢查通不過。

我懷疑是否Eclipse對此做了限制,於是就用 Emacs 試驗了一下:

建立B.java,定義 class B:

class B
{
  public void print()
  {
    System.out.println("This is an object of B class.");
  }
}

建立A.java,定義class A,A在test命名空間中,引用B:

 1 package test;
 2 
 3 class A
 4 {
 5   public static void main(String [] args)
 6   {
 7     B b = new B();
 8     b.print();
 9   }
10 }

javac B.java A.java 發現不管A.java中是否 import B ,編譯都不通 過,看來是javac的限制。

通過網上搜索發現,用java 1.2, 1.3時,是可以從包中引用默認包中的類 的,但java 1.4之后就不行了:Java 1.4兼容文檔 中有說明,並建議把所 有在未命名的名字空間(默認包)中的類放到某個命名空間中。

無奈,只好順從吧。

2012-06-10


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM