【问题标题】:Is it possible to create object of an inner class inside a static class in java?是否可以在java中的静态类中创建内部类的对象?
【发布时间】:2017-09-21 14:36:24
【问题描述】:

如何在java中的静态类中声明内部类的对象?

public class xyz
{
    static class abc
    {
        ...
        // I want to declare an object of class a here. how can I do this?

    }
    class a
    {
        ...
    }
}

【问题讨论】:

  • a varName;???
  • 'a' 是类名
  • 也许this 是相关的。
  • 一开始有点混乱,但是和所有非静态成员一样,它们必须通过实例来访问。所以你需要在abc中创建一个xyz对象。
  • 如果您需要a 的实例而没有xyz 的实例,则可能存在设计缺陷。你能解释一下为什么你想要这个吗?

标签: java static inner-classes


【解决方案1】:

内部类的实例存在于封闭类实例的上下文中。所以你必须首先创建一个封闭类的实例,然后你可以从那里创建一个内部类的实例。例如:

public class xyz {
    static class abc {
        a member = new xyz().new a();
    }

    class a {
    }
}

更多信息:Oracle Java Tutorials - Nested Classes

【讨论】:

  • 我试过这种方式,但它显示错误。它要求我在 class'abc' 中创建方法 a()。
  • '非静态内部'是一个重言式。请参阅 JLS #8.1.3。
猜你喜欢
  • 2012-04-26
  • 2015-04-28
  • 2021-08-18
  • 2010-10-20
  • 2018-08-19
  • 1970-01-01
  • 2010-10-02
  • 2016-03-24
  • 1970-01-01
相关资源
最近更新 更多