java - 为什么不能在 Java 中将类声明为静态?

标签 java static-class

为什么不能在 Java 中将类声明为静态?

最佳答案

只有嵌套类可以是静态的。通过这样做,您可以使用嵌套类而无需外部类的实例。

class OuterClass {
    public static class StaticNestedClass {
    }

    public class InnerClass {
    }

    public InnerClass getAnInnerClass() {
        return new InnerClass();
    }

    //This method doesn't work
    public static InnerClass getAnInnerClassStatically() {
        return new InnerClass();
    }
}

class OtherClass {
    //Use of a static nested class:
    private OuterClass.StaticNestedClass staticNestedClass = new OuterClass.StaticNestedClass();

    //Doesn't work
    private OuterClass.InnerClass innerClass = new OuterClass.InnerClass();

    //Use of an inner class:
    private OuterClass outerclass= new OuterClass();
    private OuterClass.InnerClass innerClass2 = outerclass.getAnInnerClass();
    private OuterClass.InnerClass innerClass3 = outerclass.new InnerClass();
}

来源:

关于同一主题:

关于java - 为什么不能在 Java 中将类声明为静态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3584113/

相关文章:

Java静态错误

java - Webview 将值传递给 SAPUI5 Controller

java - 使用 excel 中的字符串作为目录来更改 JLabel 中的图像

java - 递归内部静态类如何初始化?

widget - 如何清除或删除包含我的静态类的未命名小部件池

PHP 静态类或命名空间

c# - 静态类 VS 私有(private)构造函数

java - Scala 使用可变参数构造函数扩展 Java 类

java - Android - 在 ImageView 中显示图像 10 毫秒

java - SonarQube 5.1 分析因 StackOverflowError 失败