質問編集履歴
3
結論
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,7 +1,17 @@
|
|
1
1
|
###前提・実現したいこと
|
2
2
|
javaのようにユーティリティクラスを書くには?
|
3
3
|
|
4
|
+
###結論
|
5
|
+
object(Singleton)であれcompanion objectであれ参照が渡されるだけでインスタンス化はされない。
|
6
|
+
そのため、インスタンス化を避けたいのであれば単純にobjectを利用すればよい
|
4
7
|
|
8
|
+
新たに名前をつけ参照を保存することを回避したいのであれば
|
9
|
+
名前空間に直接に関数や定数を定義すれば良い
|
10
|
+
|
11
|
+
kotlinを使い始めてsingletonがなぜ「object」なのかと不思議には思っていましたが
|
12
|
+
ユーザがアクセスする時点でメモリ領域に確保(インスタンス化)されており、「実体のある物体」だからだとわかった
|
13
|
+
|
14
|
+
|
5
15
|
###該当のソースコード
|
6
16
|
```kotlin
|
7
17
|
fun main(args : Array<String>){
|
2
singletonについて
title
CHANGED
File without changes
|
body
CHANGED
@@ -26,6 +26,24 @@
|
|
26
26
|
val AVOGADROS_NUMBER = 6.022
|
27
27
|
}
|
28
28
|
}
|
29
|
+
|
30
|
+
//singleton
|
31
|
+
object PhysicalConstants{
|
32
|
+
/../
|
33
|
+
|
34
|
+
//objectなのでコンクラスタは定義できない
|
35
|
+
//そのため上記と同様、インスタンス化は防げない
|
36
|
+
}
|
37
|
+
//としてシングルトンを作成できることは知っていまいすが
|
38
|
+
//「シングル」のインスタンスさえ作成させたくない
|
39
|
+
|
40
|
+
//javaならばこのようなユーティリティクラスの実現
|
41
|
+
public Util{
|
42
|
+
private Util(){}
|
43
|
+
|
44
|
+
public static int utilMethod(){/../}
|
45
|
+
}
|
46
|
+
|
29
47
|
```
|
30
48
|
|
31
49
|
###補足情報(言語/FW/ツール等のバージョンなど)
|
1
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
###前提・実現したいこと
|
2
|
-
javaのようにユーティリティ
|
2
|
+
javaのようにユーティリティクラスを書くには?
|
3
3
|
|
4
4
|
|
5
5
|
###該当のソースコード
|