错误:类X是public应该在名为X.java的文件中声明

Chr*_*ank 31 java

我正在尝试编写程序,但是我收到了这个编译错误:

Main.java:1: error: class WeatherArray is public, should be declared in a file named WeatherArray.java
public class WeatherArray {
       ^
1 error
Run Code Online (Sandbox Code Playgroud)

我检查了我的文件名,我的公共类与我的.java文件相同.

我怎样才能解决这个问题?

这是我的代码:

public class WeatherArray {
    public static void main(String[] args) {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

jlo*_*rdo 45

您必须将文件重命名public class Foo{}Foo.java

或者将类重命名Main.javaWeatherArray.java

  • 如果你没有`public class Main`那就没有`Main.java`.不要将主类与`main`方法混淆.你的`main`方法在`WeatherArray.java`中.另外,我认为你的嵌套时间应该是顺序的`if`语句. (3认同)
  • Main.java 将位于文件结构中的什么位置? (2认同)

Bos*_*ohn 9

文件中公共类的名称必须与该文件的名称相同.

因此,如果您的文件声明了WeatherArray类,则需要将其命名为WeatherArray.java


san*_*one 5

当您在硬盘上有一个Java类名称,而在代码中有另一个Java类名称时,就会发生这种情况!

例如,我在代码中将MainActivity类重命名为MainnActivity仅(!)。我立即收到此错误。

Android Studio的“项目”选项卡中还有一个视觉指示器-类内的一个类,就像您嵌套过的类一样,但是带有错误指示器。

解决方案是简单地在“项目”选项卡(SHIFT+ F6)中重命名类名称,以匹配Java代码中的名称。


小智 5

我遇到了同样的问题,但当我意识到我没有使用正确的大小写编译它时解决了它。你可能一直在做

javac Weatherarray.java

当它应该是

javac WeatherArray.java