kotlinのstaticメソッド
kotlinではstaticメソッドはありません。ただしCompanion Objectsという仕組みを使えば実現できます。
class Foo {
companion object {
fun staticMethodTest() {
}
}
}
fun main() {
Foo.staticMethodTest() //実行可能
}
kotlinの定数
constを指定することでコンパイル時定数 (compile time constants) としてマークすることができます。
以下の場合どちらの値も参照可能です。
class Foo {
companion object {
val TEST_VAL1 = 1
const val TEST_VAL2: Int = 2
}
}
fun main() {
println("TEST_VAL1 = ${Foo.TEST_VAL1}")
println("TEST_VAL2 = ${Foo.TEST_VAL2}")
}
実行結果
TEST_VAL1 = 1
TEST_VAL2 = 2
ただしJavaでアクセスする場合にconstを指定している場合はFoo.TEST_VAL2でアクセスでき、constを指定していない場合はgetTEST_VAL1()という呼び出し方になります。
constを指定することによって以下のメリットがあります。
- コンパイル時定数となるので、パフォーマンスが良くなる。
- Javaとの相互運用性が保てる