[解決済み] Kotlin クラス内のオブジェクトとコンパニオンオブジェクトの違い
2023-02-28 17:57:30
質問
kotlinのクラスにおけるオブジェクトとコンパニオンオブジェクトの違いは何ですか?
例を挙げます。
class MyClass {
object Holder {
//something
}
companion object {
//something
}
}
コンパニオンオブジェクトは、パラメータやメソッドがそのクラスと密接に関連している場合に使用される、と私はすでに読みました。
しかし、なぜクラス内に通常のオブジェクトを宣言する可能性もあるのでしょうか?なぜなら、それはコンパニオンと全く同じように振る舞いますが、名前を持たなければならないからです。
もしかして、その "static" (私はjava側の人間です) のライフサイクルに違いがあるのでしょうか?
どのように解決するのですか?
オブジェクトはインターフェースを実装することができます。クラス内部で、インターフェースを実装しない単純なオブジェクトを定義しても、ほとんどの場合、何のメリットもありません。しかし、様々なインターフェースを実装した複数のオブジェクトを定義すること(例えば
Comparator
など)は非常に便利です。
ライフサイクルの面では、コンパニオン・オブジェクトとクラスで宣言された名前付きオブジェクトの間に違いはありません。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン