繁体   English   中英

创建封闭类的实例

[英]create instance of enclosing class

假设我有这样的结构:

  public class Foo {

        public class Bar {

        }

    }

现在,如何在创建Foo后创建Bar的实例? 像这样但不是这样的:

 Foo foo = new Foo();
 Foo.Bar bar = new foo.Bar();

你快到了:

Foo foo = new Foo();
Foo.Bar bar = foo.new Bar();
Foo fooInstance = new Foo();
Foo.Bar barInstance = fooInstance.new Bar(); 

您需要将内部类设置为static ,以便可以在不创建外部类实例的情况下引用它。

public class Foo {

    public static class Bar {

    }

}

现在你可以在不创建Foo实例的情况下引用Bar

Foo.Bar bar = new Foo.Bar();

有两种方法可以实现

保持你的内部non static

class Foo   
{
  ...
  class Bar
  {
   ...
  }
}
 //then 
Foo foo = new Foo();
Foo.Bar car = foo.new Bar();

让你内在的static

public class Foo {
  public static class Bar {
  }
}
public class Test {
...
  Foo.Bar bar = new Foo.Bar();

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM