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

标签 java compiler-errors nested-class inner-classes

似乎无法编译以下 main 方法:

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());
    }
}

这是 InnerizationClass 类:

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;}
}

我从 main 方法的 #1 中收到以下错误:

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());
 }
}

由于您的内部类是静态的,因此您不需要创建 InnerizationClass 的实例

关于java - 无法编译内部类源文件,导致错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5789240/

相关文章:

c++ - 模板嵌套类的构造函数问题(复制构造函数似乎覆盖了其他构造函数)

java - java中检查字符串是否为null

java - SolrCrud存储库: use inheritance

java - java中查找方法的用法(IntelliJ插件开发)

C++ 覆盖嵌套类只能部分说服编译器

c# - 嵌套类构造函数的可见性

java - 我们可以在 Spark sql 中触发传统的连接查询吗

compiler-errors - Elm类型列表和类型别名-获取提取的列表以识别类型

haskell - 为什么会收到类型错误?

c++ - 无法在C++的标准输出流(cout)中输出按位运算的结果