Java 静态错误:将元素转换为正方形后对数组进行排序

Java 静态错误:将元素转换为正方形后对数组进行排序,java,Java,我正在努力学习Java,并试图从谷歌那里得到一个面试问题。答案可以在这里找到:。当我复制粘贴到repl.it时,它告诉我Main丢失了,所以我添加了Main,正如你们在下面看到的,但它告诉我static有问题。有人能给我指一下正确的方向吗?我看了关于什么是静态的视频,但到目前为止,还没有一个视频对堆栈溢出有帮助。非常感谢 它给出了以下错误: javac -classpath .:/run_dir/junit-4.12.jar:target/dependency/* -d . Main.java

我正在努力学习Java,并试图从谷歌那里得到一个面试问题。答案可以在这里找到:。当我复制粘贴到repl.it时,它告诉我Main丢失了,所以我添加了Main,正如你们在下面看到的,但它告诉我static有问题。有人能给我指一下正确的方向吗?我看了关于什么是静态的视频,但到目前为止,还没有一个视频对堆栈溢出有帮助。非常感谢

它给出了以下错误:

javac -classpath .:/run_dir/junit-4.12.jar:target/dependency/* -d . Main.java
Main.java:5: error: Illegal static declaration in inner class Main.GoogleInterview
    public static void sortSquares(int arr[])
                       ^
  modifier 'static' is only allowed in constant variable declarations
Main.java:13: error: Illegal static declaration in inner class Main.GoogleInterview
    public static void main(String[] args)
                       ^
  modifier 'static' is only allowed in constant variable declarations
2 errors
exit status 1
代码:

import java.util.*;
导入java.io.*;
班长{
谷歌课堂访谈{
公共静态无效分拣区(int arr[]
{
int n=阵列长度;
对于(int i=0;i
事实上,错误与
static
修饰符有关。

您的代码在
Main
类中声明了一个内部类:这就是问题所在。非静态内部类无法声明静态方法,因为它与外部类的实例化存在隐式关系。

请删除重复的冗余“class Main”,将声明更改为
公共类GoogleSession{…}
,并确保文件名为“GoogleSession.java”。查看此线程:或者删除
类GoogleSession{
和最后一个
}
,不要听Enzo的。“Main”是可怕的类名(在天真的用户中太常见了)!但是再次强调:中心问题是在嵌套类中具有“静态”。解决方案是避免嵌套类,除非您确实需要它们:)
import java.util.*;
import java.io.*;
class Main{
class GoogleInterview {
    public static void sortSquares(int arr[])
    {
        int n = arr.length;
        for (int i = 0; i < n; i++)
            arr[i] = arr[i] * arr[i];
        Arrays.sort(arr);
    }
  
    public static void main(String[] args)
    {
        //Insert array of numbers below
        int arr[] = { -3, 1, 0, 2, -482, 5 };
        //Insert array of numbers above
        
        int n = arr.length;
        sortSquares(arr);
        System.out.println("");
        System.out.println("After Sort ");
        for (int i = 0; i < n; i++)
            System.out.print(arr[i] + " ");
    }
}
}