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访问静态嵌套类[重复]的主要内容,如果未能解决你的问题,请参考以下文章