Javaコードではなくkotlinコードにしか表示できないメソッドが必要です。いくつかのメソッドをkotlinだけに見えるようにする方法
たとえば、fun method(){}
の場合、kotlinコードでのみ呼び出すことができ、Javaコードで呼び出すことはできません。
Javaコードではなくkotlinコードにしか表示できないメソッドが必要です。いくつかのメソッドをkotlinだけに見えるようにする方法
たとえば、fun method(){}
の場合、kotlinコードでのみ呼び出すことができ、Javaコードで呼び出すことはできません。
に貢献している場合にのみ、あなたは@JvmSynthetic
注釈を使用したい正確に何を達成することができます。 (それは同様に動作します、他のJVM言語についてはかなりわからない、チェック必要がありますが、おそらく)それはJVMバイトコードにsynthetic
flagを持つ要素をマークし、その使用方法は、Javaソース内のエラー次のようになります。
@JvmSynthetic
fun f() { /*...*/ }
マークされた要素はまだKotlinで通常使用できます。
残念ながら、@JvmSynthetic
はクラスをマークするために使用できません(CLASS
ターゲットはありません)。
もっと見る:
What's the intended use of @JvmSynthetic in Kotlin?(そこには答えが、その効果は疑問に記載されている。)
Inline function cannot access non-public-API: @PublishedApi vs @Suppress vs @JvmSynthetic、効果的に公共の内部メンバーを隠すために使用することができます方法について。
@kotlin.internal.InlineOnly
注釈付きのinline
がKotlin stdlibの一部のメソッドに表示されます。これにより、コンパイラはJVMクラスで対応するメソッドを生成せずに、それらをkotlinコードにインライン展開します。
このトリックは、stdlibのメソッド数を減らすために使用されます。これは危険な解決策であり、誤って使用すると別のコンパイルで問題を引き起こす可能性があります。
catch:@kotlin.internal.InlineOnly
アノテーションは内部であり、標準ライブラリでのみ使用できます。私はそれを公開APIに公開する予定はないことを知っています。
TL; DR:あなたはそれを行うことができますが、Kotlin STDLIB
本当にありがとうございました! – like