2014-01-18 55 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.*;