我想知道伴侣对象和用@Singleton声明的类有什么区别?
据我了解,你只能有两个实例。您可以在课堂上使用依赖注入,而不是使用对象,但除此之外,我并不认为存在很多不同。
答案 0 :(得分:1)
好吧,简单地说。
名为与类相同的单个对象称为伴随对象。
还必须在与该类相同的源文件中定义伴随对象。
您也在使用Guice
吗?那个@Singleton是我认为的Guice。
答案 1 :(得分:1)
非常相似的东西。对象是Scala允许您创建单例对象的方式。
要记住的事情:
答案 2 :(得分:1)
另一个不同之处是,序列化对Scala单例对象的引用使用自定义代码,该代码将始终解析存在于各个类加载器中的该对象的单个实例。
答案 3 :(得分:0)
正如名称所反映的那样,Scala中的Singleton在整个应用程序生命周期中都有一个实例。单例的示例是Nil,表示空列表。
另一方面,伴随对象是在Scala中创建的案例类的辅助对象,您可以在其中放置自定义对象构造函数(应用),隐式转换,分解器(unapply)。自动定义案例类时,会定义伴随对象。