2017-08-01 13 views

答えて

6

に貢献している場合にのみ、あなたは@JvmSynthetic注釈を使用したい正確に何を達成することができます。 (それは同様に動作します、他のJVM言語についてはかなりわからない、チェック必要がありますが、おそらく)それはJVMバイトコードにsynthetic flagを持つ要素をマークし、その使用方法は、Javaソース内のエラー次のようになります。

@JvmSynthetic 
fun f() { /*...*/ } 

マークされた要素はまだKotlinで通常使用できます。

残念ながら、@JvmSyntheticはクラスをマークするために使用できません(CLASSターゲットはありません)。

もっと見る:

+0

本当にありがとうございました! – like

1

@kotlin.internal.InlineOnly注釈付きのinlineがKotlin stdlibの一部のメソッドに表示されます。これにより、コンパイラはJVMクラスで対応するメソッドを生成せずに、それらをkotlinコードにインライン展開します。

このトリックは、stdlibのメソッド数を減らすために使用されます。これは危険な解決策であり、誤って使用すると別のコンパイルで問題を引き起こす可能性があります。

catch:@kotlin.internal.InlineOnlyアノテーションは内部であり、標準ライブラリでのみ使用できます。私はそれを公開APIに公開する予定はないことを知っています。

TL; DR:あなたはそれを行うことができますが、Kotlin STDLIB

関連する問題