【发布时间】:2013-08-20 01:44:39
【问题描述】:
来自 Oracle 的 Java tutorials 我找到了这段文字:
与类方法和变量一样,静态嵌套类与其外部类相关联。和静态类方法一样,静态嵌套类不能直接引用在其封闭类中定义的实例变量或方法——它只能通过对象引用来使用它们。
注意:静态嵌套类与其外部类(和其他类)的实例成员交互,就像任何其他顶级类一样。实际上,静态嵌套类在行为上是一个顶级类,为了方便打包,它已经嵌套在另一个顶级类中。
使用封闭类名访问静态嵌套类:
OuterClass.StaticNestedClass
例如,要为静态嵌套类创建对象,请使用以下语法:
OuterClass.StaticNestedClass nestedObject = 新的 OuterClass.StaticNestedClass();
我认为不可能实例化一个静态类,所以我不太理解粗体的句子。
你知道这意味着什么吗?
【问题讨论】:
-
是的,有可能。您可能正在考虑一个非静态内部类,在这种情况下,您只能通过已经创建的外部类实例来实例化它。此外,如果您熟悉 C#,则无法用该语言实例化静态类。这条语句清楚地说明了这一点:“实际上,静态嵌套类在行为上是一个顶级类,为了包装方便,它已经嵌套在另一个顶级类中。”
-
我的问题是没有在 tomcat 中重新加载应用程序!它需要使用更新的内部类作为静态重新加载类文件。仅仅替换服务器文件是不够的 - 必须重新加载应用程序:)
标签: java static nested instantiation