Java访问静态嵌套类[重复]

Posted

技术标签:

【中文标题】Java访问静态嵌套类[重复]【英文标题】:Java access static nested class [duplicate] 【发布时间】:2017-11-12 09:36:46 【问题描述】:

如何创建以下类的实例并访问其方法。 示例:

public class A 
    public static class B 
        public static class C 
            public static class D 
                public static class E 
                    public void methodA() 
                    public void methodB()
                
            
        
    

【问题讨论】:

A.B.C.D.E e = new A.B.C.D.E(); 不确定“如何”是什么意思。 仅供参考: 在另一个类中声明的类称为 嵌套 类。如果它是非静态的,它也被称为 inner 类。由于您的类是static,它们通常被称为静态嵌套类。它们绝对不是 inner 类。 JLS §8.1.3. Inner Classes and Enclosing Instances:内部类是没有显式或隐式声明的嵌套类static OP,您在 Java 文档中查找过这个吗? JLS 回答了这个问题。仅供参考,诸如 Java 语言之类的文档非常有用。 【参考方案1】:

你可以使用:

A.B.C.D.E e = new A.B.C.D.E();//create an instance of class E
e.methodA();//call methodA 
e.methodB();//call methodB

或者像@Andreas 在评论中提到的那样,您可以使用import A.B.C.D.E;,因此如果您的课程在另一个打包程序中,那么您可以使用name_of_package.A.B.C.D.E 调用您的课程,如下所示:

import com.test.A.B.C.D.E;
//     ^^^^^^^^------------------------name of package

public class Test 

    public static void main(String[] args) 
        E e = new E();
        e.methodA();
        e.methodB();
    

【讨论】:

import A.B.C.D.E; E e = new E();。而且您还需要先获得E 的资格,而无需导入。 --- 为了完整起见,如果A 在一个包中,您可能会提到它是如何工作的。 是的@Andreas 这也可以解决问题检查我的编辑 Arrsyss?如果这应该是包的例子,那么它应该是小写的,更好的例子可能是org.example 不不@Andreas 我现在检查错误

以上是关于Java访问静态嵌套类[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Java:静态与内部类[重复]

java内部类的静态嵌套类

Java中私有静态嵌套类中的访问修饰符

访问嵌套的静态常量 [重复]

Java嵌套类,内部类和外部类

关于 Java 中私有静态嵌套类的合成访问器的 Eclipse 警告?