KotlinでのJava静的最終同等物の作成
1. 概要
このクイックチュートリアルでは、Javaの static final 変数と、Kotlinの同等の変数について説明します。
Javaでは、静的最終変数を宣言すると、定数を作成するのに役立ちます。 Kotlinでは、同じ目標を達成するためのいくつかの方法があります。
2. オブジェクトの内部
まず、Kotlinオブジェクトで定数を宣言する方法を見てみましょう。
object TestKotlinConstantObject {
const val COMPILE_TIME_CONST = 10
val RUN_TIME_CONST: Int
init {
RUN_TIME_CONST = TestKotlinConstantObject.COMPILE_TIME_CONST + 20;
}
}
上記の例では、 const valを使用してコンパイル時定数を宣言し、valを使用して実行時定数を宣言します。
Kotlinコードでは、Java staticfinal変数と同じ方法でそれらを呼び出します。
@Test
fun givenConstant_whenCompareWithActualValue_thenReturnTrue() {
assertEquals(10, TestKotlinConstantObject.COMPILE_TIME_CONST)
assertEquals(30, TestKotlinConstantObject.RUN_TIME_CONST)
}
ただし、JavaコードではTestKotlinConstantObject.RUN_TIME_CONSTを使用できないことに注意してください。 valキーワード自体は、constキーワードなしで、Javaクラスがを呼び出すためのパブリックとしてKotlinフィールドを公開しません。
これが、@JvmFieldがval変数を公開して、Java対応の staticfinal変数を作成する理由です。
@JvmField val JAVA_STATIC_FINAL_FIELD = 20
これは、KotlinクラスとJavaクラスの両方のconstval変数と同じようにと呼ぶことができます。
assertEquals(20, TestKotlinConstantObject.JAVA_STATIC_FINAL_FIELD)
また、 @ JvmStatic、 これは、次のように使用できます。
3. Kotlinクラスの内部
これらの定数の宣言は、Kotlin クラスでも同様ですが、コンパニオンオブジェクト内にあります:
class TestKotlinConstantClass {
companion object {
const val COMPANION_OBJECT_NUMBER = 40
}
}
そして、以前と同じことができます。
assertEquals(40, TestKotlinConstantClass.COMPANION_OBJECT_NUMBER)
5. 結論
この記事では、Kotlinで const 、 val 、および @JvmField を使用して、静的な最終変数を作成しました。
いつものように、コードはGitHubのにあります。