我有以下目录结构:
MessManagement
是父目录。
根据我有3个目录:student
,messconvener
,messmanager
学生目录包含Student.java
和Student.class
文件。 messconvener
包含MessConvener.java
这需要Student class
,因为MessConvener
从Student
本身延伸。
我应该怎么做类的包装.... ??
到目前为止我尝试了什么。
代码:
这是Student.java
package MessManagement;
import java.sql.*;
public class Student
{
}
这是MessConvener.java
package MessManagement;
import MessManagement.student.Student;
public class MessConvener extends Student
{
}
但这似乎不起作用。错误消息:
MessConvener.java:2: error: package MessManagement.student does not exist
import MessManagement.student.Student;
^
MessConvener.java:3: error: cannot find symbol
public class MessConvener extends Student
^
symbol: class Student
2 errors
发生这种情况有两种可能的原因
你得到的错误是有道理的。 Student
类位于MessManagement
包,而不是MessManagement.student
包。
对我来说,出于不同的原因我得到了这个错误,这是在一个maven项目中。它在我对类进行了重大更改并复制到许多新类之后开始出现。在您的情况下,没有冲突的包名称。
解决方案是做mvn clean
。
在此之后,我再也没有得到那个错误。
我最近有这个问题,因为我在与我正在编译的java文件相同的目录中有一个类文件。您需要删除该目录中的所有.class文件。
我删除了out文件夹,问题解决了
将文件从一个项目复制到另一个项目或通过重构移动文件时,可能会发生这种情况。
在我的Intellij IDEA / Gradle项目中对我有帮助的是删除包装线并使用Shift+Enter
将其替换为看似非常相似的。如果你有很多类,你需要找到依赖项的“根”,然后从那里开始。非常奇怪的解决方案,作为这些文件的明文的差异将没有显示,但解决了问题。另一个解决方案是在包上使用Refactor-Rename,给它一个缓冲区名称,然后再次命名,就像你想要它被调用一样。我没有深入研究为什么会发生这种情况。
在maven项目中,mvn clean
帮助了我。