KClass
にはClass
を返すプロパティとして以下の3種類が定義されています。
.java
.javaObjectType
.javaPrimitiveType
Kotlin
のInt
型を例にすると、返却内容は以下のようになります。
.java |
.javaObjectType |
.javaPrimitiveType |
|
---|---|---|---|
Int::class |
int.class |
Integer.class |
int.class |
Integer::class |
Integer.class |
Integer.class |
int.class |
その他 | *.class |
*.class |
null |
どんな時に気にすべきか
プリミティブ型とラッパー型を区別する必要の有無によって使い分ける必要が出るでしょう。
また、「Class
を要求するような実装でプリミティブ型に対応していない」というパターンを踏んだことが有るので、そういった場合には.javaObjectType
呼び出しを行う必要が有ります。