假设我有一个内部类B,我将在外部类的一个成员函数中创建一个实例,有没有一种方法可以在不创建外部类的实例的情况下做到这一点?
非常感谢。
class A {
class B {
}
public void function() {
// create an instance of B, normally have to create a
// instance of A to be bond to by b
B b = new B();
}
}发布于 2013-04-12 13:59:33
执行此操作的唯一方法是声明B static
class A {
static class B {这意味着B没有与之关联的A实例,并且可以在没有外部实例可用的上下文中实例化。
也就是说,您当前的代码按原样编译得很好(因为function()是非static的,所以在这个上下文中有一个A的实例可用)。
发布于 2013-04-12 14:02:59
您可以从class A外部创建class B对象,如下所示
新B b=
A().new B();
但在这里,您先创建外部类的实例,然后创建内部类的实例。如果不创建外部类的实例,则无法创建内部对象。
但是,如果您的内部类是static,那么您也可以这样做。
class A {
static class B {
}
}
class C{
public void test(){
B b = new B();
}
}发布于 2013-04-12 14:01:14
如果要访问外部类的方法中的嵌套/内部类,则不需要创建外部类的实例。
https://stackoverflow.com/questions/15964111
复制相似问题