2014-01-18 94 views
-2
reifnsk/minimap/ReiMinimap.java:68: error: '.' expected 
import ro; 
     ^
reifnsk/minimap/ReiMinimap.java:68: error: ';' expected 
import ro; 
     ^
reifnsk/minimap/ReiMinimap.java:69: error: class, interface, or enum expected 
import sb; 
    ^

我得到這些大多數我的導入語句之一,但它的語法好。Java編譯器抱怨完美有效的語法

完整的錯誤:http://bit.ly/1eZ5l0h 文件快照:http://bit.ly/1eSXMdE 文件或多或少是封閉源代碼,但大部分的問題都只是import語句和switch語句。

+0

您試圖導入的軟件包是什麼 – Jijo

+1

我們不需要完整的錯誤,並且文件快照沒有有用的信息。你可以在出現的類中顯示代碼(從文件開始到'class ClassName') – Justin

+2

請注意,在正確的情況下使用時,你可以有一行在語法上正確的代碼,一個不正確的情況仍然會給你編譯錯誤。處理程序的語法遠不止於此。 –

回答

2

您正嘗試從命名包中的類的默認包中導入類。這是行不通的(至少沒有反思)。爲了使用它們,必須將導入的類放入命名包中,或者將類本身放入默認包中。

有關更多信息,請參見the answer about such imports

+0

哇,很好的捕獲。我永遠不會想到這一點;我從不使用默認包。 – Justin

+0

@Quincunx我認爲這些類是由於命名方案而在默認包中。它立即讓我想起了一些混淆,通常將大部分類放在默認包中。截圖顯示我的假設是正確的。 – Malcolm

+0

我刪除了包語句並將其移到項目的根文件夾中,但它仍然不想工作 – DirkyJerky

0

包語句必須先在文件中,甚至在導入之前。

1

參見How to import

通告完全合格的名稱的例子:

Here is the fully qualified name for the Rectangle class declared in the graphics package in the previous example.

graphics.Rectangle

第一部分,graphics,是包的名稱。第二部分,Rectangle是班級的名字。

您無法導入與您位於同一包中的類。沒有理由;你已經可以訪問它了。如果是在不同的包,你的進口需要改變的東西是這樣的:

import myPackage.ro; 

如果你知道你要使用的每類在包中,使用*進口:

import myPackage.*;