KotlinにおけるJavaのクラスオブジェクト参照方法

Kotlin実装中Javaライブラリ(Doma2)を利用しているときに、JavaにおけるFoo.class(Javaのクラスオブジェクト)を指定したい場面がありました。

結論

以下の記法でJavaのFoo.classオブジェクトを取得できます。

利用例

Doma2(クエリビルダ利用時)においてSQL発行時の利用例は以下になります。

補足

Kotlinではリフレクションを::という記法で実現できます。
::classでKClass型のインスタンスを取得し、.javaでJavaのクラスオブジェクトを取得しています。

ちなみに、このKClass型ではクラスオブジェクト以外にも様々な情報が取得でき、例えば.membersPropertiesではそのオブジェクトのプロパティ自体のリストが取得できます。(変数名をStringで取得できる)

Kotlin公式リファレンスの以下ページにリフレクションやJavaとの相互運用に関しての記載があるので、そちらも参考にしてください。

https://kotlinlang.org/docs/reference/reflection.html#reflection

https://kotlinlang.org/docs/reference/java-interop.html#java-reflection

 

システム開発のご相談はこちらからお気軽にお問合せください。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です