如何强制某些方法只对kotlin可见

lik*_*ike 5 java visible kotlin

我想要一些方法只对kotlin代码可见,而不是Java代码.

例如,这里的方法fun method(){}只能在kotlin代码中调用,不能在Java代码中调用.

hot*_*key 7

您可以使用@JvmSynthetic注释完全达到所需的效果.这标志着与元素synthetic标记在JVM字节码,并且它的使用成为Java源代码的错误(不太清楚有关其他JVM语言,需要进行检查,但有可能它会工作以及):

@JvmSynthetic
fun f() { /*...*/ }
Run Code Online (Sandbox Code Playgroud)

标记的元素仍然可以在Kotlin中正常使用.

不幸的是,@JvmSynthetic不能用来标记一个类(它没有CLASS目标).

看更多: