为什么VS Code中Java类前加public会出现未解决的编译问题?
报错根本原因
- Java语法有明确强制规则:如果一个类使用
public修饰符声明,该类所在的源代码文件名必须和类名完全一致,大小写也必须完全匹配
你给出的报错信息中明确写了at Variable.main(Array.java:3),说明你的源代码文件命名是Array.java,但你public修饰的类名是Variable,二者完全不匹配,因此编译阶段就会报错,运行时直接抛出未解决编译问题的异常。 - 当你删除
class Variable前的public修饰符后,该类变为默认访问权限,不再要求类名和文件名严格一致,编译可以正常通过,因此程序可以正常运行。
修复方案
二选一即可:
- 保留类的
public修饰,将源代码文件名从Array.java修改为Variable.java,注意大小写完全对应 - 保留现有
Array.java文件名不变,移除类前的public修饰符
内容的提问来源于stack exchange,提问作者liszt1811
相关产品推荐
相关产品推荐

