回答:
Kotlinのドキュメントによると、これは同等です。
class Hello {
companion object {
const val MAX_LEN = 20
}
}
使用法:
fun main(srgs: Array<String>) {
println(Hello.MAX_LEN)
}
また、これは静的な最終プロパティです(ゲッター付きのフィールド)。
class Hello {
companion object {
@JvmStatic val MAX_LEN = 20
}
}
そして最後に、これは静的な最終フィールドです。
class Hello {
companion object {
@JvmField val MAX_LEN = 20
}
}
const val
-時定数をコンパイル@JvmField val
し、場合によってはこれを置換として使用できることを確認してください。値が実行時に計算されるか、プリミティブ型または文字列でない場合、それは機能しません。参考:kotlinlang.org/docs/reference/...
に実装がある場合は、クラス内Hello
で使用しますcompanion object
class Hello {
companion object {
val MAX_LEN = 1 + 1
}
}
場合Hello
、純粋なシングルトンオブジェクトであります
object Hello {
val MAX_LEN = 1 + 1
}
プロパティがコンパイル時の定数の場合、const
キーワードを追加します
object Hello {
const val MAX_LEN = 20
}
Javaで使用する場合は、@JvmStatic
アノテーションを追加します
object Hello {
@JvmStatic val MAX_LEN = 20
}
私のために
object Hello {
const val MAX_LEN = 20
}
多くの定型的なものでした。私はこのように静的なfinalフィールドをクラスの上に置くだけです
val MIN_LENGTH = 10
class MyService{
}
private
、javaの場合)、この定義が最も簡潔です。