[Android]コトリン::class.JAvaは何ですか?
2301 ワード
Retrofitを介してAPIインタフェースを呼び出し可能なオブジェクトに変換する過程で、当然のように使用される:素子に好奇心が生じる.
コードを記述するとき、実行時にコンパイルされたバイトコードには、私が記述したコードが見つかりません.
すなわち,実行時にプログラムのクラスを調べるための技術である.類返信 インスタンスによるクラス返信 クラス返信を直接読み込むか、インスタンスでインポートできます.返信は、以下に示すように、転送オブジェクトによって参照できます.
ex)
Javaにあります.classはClassを返し、CottlinでKclassを返します.しかし、次の画像から見ると、リフレッシュするcreateにはjavaクラスが必要です.
でも心配する必要はありません.
まとめると,javaクラス値を変形create()関数のパラメータとしてjavaクラスに渡すためにcortline replicationのjavaクラスタイプが得られるといえる.
コメントブログ
https://sabarada.tistory.com/190
https://yoon-dailylife.tistory.com/46
retrofit.create(UserApi::class.java)
コトリンなのになぜか.JAva,:何を表しますか.返信
:::シンボルは返信を表します。
コードを記述するとき、実行時にコンパイルされたバイトコードには、私が記述したコードが見つかりません.
すなわち,実行時にプログラムのクラスを調べるための技術である.
className:class
instanceName:class
val kClass: KClass<out className> = className::class
次に、kClassという名前の参照オブジェクトによって、クラスが抽象クラスなのかデータクラスなのか、またはコンストラクション関数とメンバー変数に関する情報を得ることができます.ex)
kClass.isAbstract
kClass.memeberProperties
だから。JAvaは何ですか?
*コートリンで使われているクラスはJavaで使われているクラスとは違います!
Javaにあります.classはClassを返し、CottlinでKclassを返します.しかし、次の画像から見ると、リフレッシュするcreateにはjavaクラスが必要です.
でも心配する必要はありません.
@Suppress("UPPER_BOUND_VIOLATED")
public val <T> KClass<T>.java: Class<T>
@JvmName("getJavaClass")
get() = (this as ClassBasedDeclarationContainer).jClass as Class<T>
以上の方法はKclassの拡張関数である.Javaを使用してjavaクラスタイプを返します.つまり。Javaを使用してKclassからjavaクラス値を取得できます。
まとめると,javaクラス値を変形create()関数のパラメータとしてjavaクラスに渡すためにcortline replicationのjavaクラスタイプが得られるといえる.
コメントブログ
https://sabarada.tistory.com/190
https://yoon-dailylife.tistory.com/46
Reference
この問題について([Android]コトリン::class.JAvaは何ですか?), 我々は、より多くの情報をここで見つけました https://velog.io/@evergreen_tree/Android-코틀린-class.java는-무엇일까テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol