Koltin注解之JvmSynthetic

如果想一个函数给kotlin代码调用 而不给java的代码调用 ,函数上面加上这个注解即可。

@file:JvmName("IntUtils")

package com.example.annotation

@JvmSynthetic
fun Int.compare(num: Int): Int {
    return if (this > num) {
        this
    } else num
}

fun main() {
   print(2.compare(3))
}

转换成Java 代码如下:

@JvmName(
   name = "IntUtils"
)
public final class IntUtils {
   // $FF: synthetic method
   public static final int compare(int $this$compare, int num) {
      return $this$compare > num ? $this$compare : num;
   }
}

可以发现:加上@JvmSynthetic注解后,该方法只能在Kotlin中调用了,在Java中会找不到这个方法 。

猜你喜欢

转载自blog.csdn.net/zhangying1994/article/details/109137531