Kotlin註解之JvmName
我們首先定義給 Int定義一個擴充套件函式。
fun Int.compare(num: Int): Int {
return if (this > num) {
this
} else num
}
在Kotlin程式碼中我們可以直接呼叫:
println(2.compare(1))
但是在 Java程式碼中我們的呼叫方式變為:
public static void main(String[] args) {
int num = TestAnotionKt.compare(2, 1);
System.out.println(num);
}
其實通過觀察Kotlin轉換為Java的程式碼就可以比較容易理解Java中的呼叫方式了,可以發現擴充套件被轉換成了一個靜態方法。類名變為:Koltin檔名+Kt
public final class TestAnotionKt {
public static final int compare(int $this$compare, int num) {
return $this$compare > num ? $this$compare : num;
}
}
其實上述的方法類似於一個工具類:這個時候我們就可以使用JvmName註解來給Java的呼叫方式重新取一個名字。
@file:JvmName("IntUtils")
package com.example.annotation
fun Int.compare(num: Int): Int {
return if (this > num) {
this
} else num
}
則在Java中可以進行如下呼叫:
int num = IntUtils.compare(1, 2);
System.out.println(num);
通過將Kotlin程式碼轉換成 Java程式碼,可以看出JvmName註解的作用:可以修改靜態方法所在的類名。
public final class IntUtils {
public static final int compare(int $this$compare, int num) {
return $this$compare > num ? $this$compare : num;
}
}
相關文章
- Kotlin知識歸納(十三) —— 註解Kotlin
- 教你如何完全解析Kotlin中的註解Kotlin
- Spring 註解程式設計之模式註解Spring程式設計模式
- Java之註解(Annotation)Java
- Koltin註解之JvmSyntheticJVM
- Spring註解之@ConditionalSpring
- Spring註解之@ImportSpringImport
- Java ”框架 = 註解 + 反射 + 設計模式“ 之 註解詳解Java框架反射設計模式
- Spring Boot註解 之 @RequestXSpring Boot
- Java之註解與反射Java反射
- Kotlin之KoinKotlin
- 【Kotlin】初識Kotlin之物件導向Kotlin物件
- Spring系列之新註解配置+Spring整合junit+註解注入Spring
- Android 註解系列之Annotation(二)Android
- springboot系列文章之SpringBootApplication註解Spring BootAPP
- Ioc之全註解開發
- Jackson(3)之常用註解使用
- Spring 註解面面通 之 @MatrixVariableSpring
- Kotlin之UI篇KotlinUI
- 帶你瞭解資料標註之文字標註
- Android 註解系列之APT工具(三)AndroidAPT
- 13.Android之註解問題Android
- Java必知必會之註解Java
- jackson學習之五:JsonInclude註解JSON
- LeetCode之Insert Interval(Kotlin)LeetCodeKotlin
- 初識Kotlin之集合Kotlin
- LeetCode之Fibonacci Number(Kotlin)LeetCodeKotlin
- LeetCode之Evaluate Division(Kotlin)LeetCodeKotlin
- LeetCode之Flipping an Image(Kotlin)LeetCodeKotlin
- Kotlin——集合詳解Kotlin
- Java基礎知識整理之註解Java
- Hibernate註解(一)之持久化實體持久化
- SDWebImage原始碼解析之SDWebImageManager的註解Web原始碼
- 二. 重識Java之夯實註解Java
- jackson學習之八:常用方法註解
- jackson學習之七:常用Field註解
- LeetCode之Find Common Characters(Kotlin)LeetCodeKotlin
- LeetCode之Smallest Range I(Kotlin)LeetCodeKotlin