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呼び出しを行う必要が有ります。