2017-08-01 81 views

回答

6

您可以通過使用@JvmSynthetic註釋正是你想要的實現。這標誌着與在JVM字節碼的synthetic flag的元素,它的用法成爲Java源代碼的錯誤(不太清楚有關其他JVM語言,需要進行檢查,但可能它也能發揮作用):

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

的標記的元素仍然可以在Kotlin中正常使用。

不幸的是,@JvmSynthetic不能用於標記一個類(它沒有CLASS目標)。

查看更多:

+0

非常感謝您的回答! – like

1

Kotlin stdlib中的某些方法用@kotlin.internal.InlineOnly註釋標記爲inline。這使編譯器將它們內聯到kotlin代碼中,而不會在JVM類中生成相應的方法。

這個技巧用於減少stdlib的方法數量。這是一個危險的解決方案,如果使用不正確,可能會導致單獨編譯時出現問題。

捕獲:@kotlin.internal.InlineOnly註釋是內部的,只能在標準庫中使用。我知道沒有將其發佈到公共API中的計劃。

TL; DR:你能做到這一點,但只有當你正促使科特林STDLIB

相關問題