コンパニオンオブジェクトと@Singletonで宣言されたクラスの違いは何ですか?Scala(Guice)のコンパニオンオブジェクトとシングルトンクラスの違いは何ですか?
私が理解するように、あなたは両方のインスタンスを1つしか持てません。オブジェクトとではなく、クラスとの依存関係注入を使用することはできますが、私は正直言ってそれほど大きな違いはありません。
コンパニオンオブジェクトと@Singletonで宣言されたクラスの違いは何ですか?Scala(Guice)のコンパニオンオブジェクトとシングルトンクラスの違いは何ですか?
私が理解するように、あなたは両方のインスタンスを1つしか持てません。オブジェクトとではなく、クラスとの依存関係注入を使用することはできますが、私は正直言ってそれほど大きな違いはありません。
非常によく似たものです。オブジェクトは、Scalaがシングルトンオブジェクトを作成する方法を示しています。心に留めておくべき
もの:
よく言えば クラスと同じ名前のシングルトンオブジェクトをコンパニオンオブジェクトと呼びます。 また、コンパニオンオブジェクトは、クラスと同じソースファイル内で定義する必要があります。 Guice
も使用していますか?その@Singletonは私が推測するGuiceものです。
名前が示すように、ScalaのSingletonはアプリケーションのライフサイクル全体で1つのインスタンスを持ちます。シングルトンの例は空リストを表すNilです。
コンパニオンオブジェクトは、カスタムオブジェクトコンストラクタ(適用)、暗黙の変換、分解(適用解除)を入れることができるScalaで作成されたケースクラスのヘルパーオブジェクトです。ケースクラスを自動的に定義すると、コンパニオンオブジェクトが自動的に定義されます。
Singleton' @この注釈が '何を?継承することはできませんコンストラクタを持つことができないオブジェクトよりも多くを作成することはできませんか私はそれを見たことがない。 – ziggystar
私はGuiceからそれを推測します。 –