首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅在成员函数内创建嵌套内部类的对象

仅在成员函数内创建嵌套内部类的对象
EN

Stack Overflow用户
提问于 2013-04-12 13:58:02
回答 5查看 653关注 0票数 3

假设我有一个内部类B,我将在外部类的一个成员函数中创建一个实例,有没有一种方法可以在不创建外部类的实例的情况下做到这一点?

非常感谢。

代码语言:javascript
复制
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();
    }
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-04-12 13:59:33

执行此操作的唯一方法是声明B static

代码语言:javascript
复制
class A {
    static class B {

这意味着B没有与之关联的A实例,并且可以在没有外部实例可用的上下文中实例化。

也就是说,您当前的代码按原样编译得很好(因为function()是非static的,所以在这个上下文中有一个A的实例可用)。

票数 2
EN

Stack Overflow用户

发布于 2013-04-12 14:02:59

您可以从class A外部创建class B对象,如下所示

新B b=

A().new B();

但在这里,您先创建外部类的实例,然后创建内部类的实例。如果不创建外部类的实例,则无法创建内部对象。

但是,如果您的内部类是static,那么您也可以这样做。

代码语言:javascript
复制
class A {
    static class B {

    }
}
class C{
   public void test(){
       B b = new B();
   }
}
票数 1
EN

Stack Overflow用户

发布于 2013-04-12 14:01:14

如果要访问外部类的方法中的嵌套/内部类,则不需要创建外部类的实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15964111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档