嵌套Java内部类
如果类C嵌套在类B中,而类B又嵌套在类A中,我如何实例化它嵌套Java内部类,java,class,nested,Java,Class,Nested,如果类C嵌套在类B中,而类B又嵌套在类A中,我如何实例化它 class A { class B { class C { .............. } } } 要实例化C,您需要一个B的封闭实例,而B又需要一个A的封闭实例 A someA = new A(); B someB = a.new B(); C someC = b.new C(); 像这样的东西应该可以 A.B.C c = new A().new B().n
class A {
class B {
class C {
..............
}
}
}
要实例化
C
,您需要一个B
的封闭实例,而B又需要一个A
的封闭实例
A someA = new A();
B someB = a.new B();
C someC = b.new C();
像这样的东西应该可以
A.B.C c = new A().new B().new C();
如果需要,可以连接新的()行。可以这样实例化
A a = new A();
A.B b = a.new B();
A.B.C c = b.new C();
这很有效
public class InnerClassTest1 {
public static void main(String[] args) {
A a = new A();
A.B b = a.new B();
A.B.C c = b.new C();
c.setValue(100);
System.out.println("Innermost value " + c.getValue());
}
}
class A {
class B {
class C {
int value;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
}
}
如果类在功能上不依赖于嵌套,即
类C
不引用类B
或类A
的方法和/或字段,则可以将内部类设置为静态
class A {
static class B {
static class C {
...
}
}
}
然后,您可以从任意位置创建它们:
A.B.C c = new A.B.C ();