Java 无法编译内部类源文件,导致错误?

Java 无法编译内部类源文件,导致错误?,java,compiler-errors,nested-class,inner-classes,Java,Compiler Errors,Nested Class,Inner Classes,似乎无法编译以下主要方法: public class MainMethod { public static void main(String []args){ InnerizationClass outer = new InnerizationClass(); InnerizationClass.StaticInnerClass inner = outer.StaticInnerClass(); //#1 System.out.pri

似乎无法编译以下主要方法:

public class MainMethod {

    public static void main(String []args){

        InnerizationClass outer = new InnerizationClass(); 
        InnerizationClass.StaticInnerClass inner = outer.StaticInnerClass(); //#1
        System.out.println(inner.getOuterClassVar());
        System.out.println(new InnerizationClass().locInnrMeth());
    }
}
MainMethod.java:6 qualified new of static class
InnerizationClass.StaticInnerClass inner = outer.new StaticInnerClass();
1 error;
这是InnerationClass:

public class InnerizationClass {

    String outerClassVar = "Outer Catism";
    static String outerClassVarStat = "Outer Static Catism";

    public static class StaticInnerClass{

        String innerClassVar = "Catism";

        public String getInnerClassVar(){

            return this.innerClassVar;
        }

        public String getOuterClassVar(){

            return InnerizationClass.outerClassVarStat;
        }
    }

    public String locInnrMeth(){

        class MethodLocalInnerClass{

            String methodLocalInrCls = "Method Local Catism";

            void printInner(){

                System.out.println(InnerizationClass.this.outerClassVar);
            }

        }

        return new MethodLocalInnerClass().methodLocalInrCls;   

    }

    public String getStaticOuterVar(){return null;}
}
我从主方法的#1中得到以下错误:

public class MainMethod {

    public static void main(String []args){

        InnerizationClass outer = new InnerizationClass(); 
        InnerizationClass.StaticInnerClass inner = outer.StaticInnerClass(); //#1
        System.out.println(inner.getOuterClassVar());
        System.out.println(new InnerizationClass().locInnrMeth());
    }
}
MainMethod.java:6 qualified new of static class
InnerizationClass.StaticInnerClass inner = outer.new StaticInnerClass();
1 error;
请尝试以下方法:

public class MainMethod {

public static void main(String []args){

    InnerizationClass.StaticInnerClass inner = new InnerizationClass.StaticInnerClass(); //#1
    System.out.println(inner.getOuterClassVar());
    System.out.println(new InnerizationClass().locInnrMeth());
 }
}
因为您的内部类是静态的,所以您不需要创建InnerOrizationClass的实例,请尝试以下操作:

public class MainMethod {

public static void main(String []args){

    InnerizationClass.StaticInnerClass inner = new InnerizationClass.StaticInnerClass(); //#1
    System.out.println(inner.getOuterClassVar());
    System.out.println(new InnerizationClass().locInnrMeth());
 }
}
因为您的内部类是静态的,所以您不需要创建InnervisionClass的实例