java 无法访问包中的类

ajsxfq5m  于 2023-02-02  发布在  Java
关注(0)|答案(7)|浏览(761)

我有以下目录结构:
MessManagement是父目录。
在那我有3个目录:x1米1米1 x、x1米2米1 x、x1米3米1 x
student目录包含Student.javaStudent.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

roqulrg3

roqulrg31#

您得到的错误是有道理的。Student类位于MessManagement包中,而不是MessManagement.student包中。
因此,要么删除MessManagement中的Student导入,要么将Student中的包名更改为MessManagement.student
对我来说,我得到这个错误是因为一个不同的原因,这是在一个maven项目中。它开始发生后,我做了重大的变化,以类和复制了很多新的类。没有冲突的包名,因为在您的情况。
解决办法是做mvn clean
在此之后,我再也没有收到该错误。

zte4gxcn

zte4gxcn2#

发生这种情况可能有两个原因
1.目录的根目录是否包含在类路径中?启动java程序时需要指定。See the documentation on how to do thatthis variant for unix
1.你的类是公共的吗?如果你忘记了public修饰符,类将具有包可见性,并且不能从其他包访问。
1.哦,好吧,没人指望西班牙宗教裁判所...仔细检查你的拼写,包括大写字母。

f2uvfpb9

f2uvfpb93#

我最近遇到了这个问题,这是因为我有一个类文件在同一个目录下的java文件,我正在编译。你需要删除所有的.class文件在该目录下。

qcbq4gxm

qcbq4gxm4#

我删除了out文件夹,问题解决了

gmxoilav

gmxoilav5#

对我来说,这是在将java更新到jdk_16之后发生的。
在我更改了“.idea”文件夹中的“misc.xml”文件后,问题得到了解决。将语言级别=“JDK_15”更改为语言级别=“JDK_16”。

xqkwcwgp

xqkwcwgp6#

Intellij中,尝试
1.转到文件
1.使缓存失效/重新启动
1.您只能选择"失效并重新启动
See this answer

iecba09b

iecba09b7#

好吧,我想我是字面上晚了8年,但今天我有这个问题,我设法解决它只是重写类的状态。似乎如果你提交你的项目,拉回来可能会让你有这个问题,但再次编写类的“公共”状态为我工作。我希望它为你们工作。

相关问题