【问题标题】:is a nested class a singleton in java是嵌套类java中的单例
【发布时间】:2013-11-26 22:16:32
【问题描述】:

在 Java 中,嵌套类是声明为静态的内部类。例如:

class Basic{

   public static class NestedClass{};
}

我想知道嵌套类是否默认为单例,或者我是否可以创建一个实例列表,例如

class Basic{

   public static NestedClass{};

   List<NestedClass> items;
}

【问题讨论】:

  • 你知道什么是单音吗?
  • 您关于“嵌套类”等的术语不正确——请参阅docs.oracle.com/javase/tutorial/java/javaOO/nested.html:“嵌套类分为两类:静态和非静态。声明为静态的嵌套类称为静态嵌套类类。非静态嵌套类称为内部类。"

标签: java singleton inner-classes nested-class


【解决方案1】:

不,这不是单例(您从哪里得到这个想法?)。除了它是一个static nested class(这确实暗示它是一个单例)之外,它是一个普通的类,特别是,你可以创建@987654322的尽可能多的不同实例@如你所愿。如果你需要它成为一个单例,那么你必须自己显式地编写代码。

【讨论】:

  • 这是一个静态嵌套类。它不是内部类。内与静是互斥的。
  • 你很有趣地问我从哪里得到这个想法:这就是我问题的重点:我想知道一个是否暗示另一个。感谢您的澄清。
  • @CoteMounyo 其他人都在想同样的事情。这是一个非常好的问题,你还没有回答。你从哪里得到这个想法?这没有任何意义。
  • @EJP 对,感谢您的澄清。我更新了我的答案
【解决方案2】:

在 Java 中,嵌套类是声明为静态的内部类。

没有。在 Java 中,inner class is a nested class that is not explicitly or implicitly declared static. JLS #8.1.3。你有这个从后到前。

我想知道嵌套类是否默认为单例

没有。

嵌套、静态和内部与单例无关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多