我有以下目录结构:MessManagement
是父目录。
在那我有3个目录:x1米1米1 x、x1米2米1 x、x1米3米1 x
student目录包含Student.java
和Student.class
文件。messconvener
包含MessConvener.java
,这需要Student class
,因为MessConvener
是从Student
本身扩展的。
我应该如何做的 Package 类....??
到目前为止我所尝试的。
代码:
这是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
7条答案
按热度按时间roqulrg31#
您得到的错误是有道理的。
Student
类位于MessManagement
包中,而不是MessManagement.student
包中。因此,要么删除
MessManagement
中的Student
导入,要么将Student
中的包名更改为MessManagement.student
。对我来说,我得到这个错误是因为一个不同的原因,这是在一个maven项目中。它开始发生后,我做了重大的变化,以类和复制了很多新的类。没有冲突的包名,因为在您的情况。
解决办法是做
mvn clean
。在此之后,我再也没有收到该错误。
zte4gxcn2#
发生这种情况可能有两个原因
1.目录的根目录是否包含在类路径中?启动java程序时需要指定。See the documentation on how to do that或this variant for unix。
1.你的类是公共的吗?如果你忘记了public修饰符,类将具有包可见性,并且不能从其他包访问。
1.哦,好吧,没人指望西班牙宗教裁判所...仔细检查你的拼写,包括大写字母。
f2uvfpb93#
我最近遇到了这个问题,这是因为我有一个类文件在同一个目录下的java文件,我正在编译。你需要删除所有的.class文件在该目录下。
qcbq4gxm4#
我删除了out文件夹,问题解决了
gmxoilav5#
对我来说,这是在将java更新到jdk_16之后发生的。
在我更改了“.idea”文件夹中的“misc.xml”文件后,问题得到了解决。将语言级别=“JDK_15”更改为语言级别=“JDK_16”。
xqkwcwgp6#
在
Intellij
中,尝试1.转到文件
1.使缓存失效/重新启动
1.您只能选择"失效并重新启动
See this answer
iecba09b7#
好吧,我想我是字面上晚了8年,但今天我有这个问题,我设法解决它只是重写类的状态。似乎如果你提交你的项目,拉回来可能会让你有这个问题,但再次编写类的“公共”状态为我工作。我希望它为你们工作。