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
- Java之註解(Annotation)Java
- Koltin註解之JvmSyntheticJVM
- Spring 註解程式設計之模式註解Spring程式設計模式
- Java ”框架 = 註解 + 反射 + 設計模式“ 之 註解詳解Java框架反射設計模式
- Java之註解與反射Java反射
- Spring註解之@ImportSpringImport
- Spring註解之@ConditionalSpring
- Spring Boot註解 之 @RequestXSpring Boot
- 編譯時註解之APT編譯APT
- Ioc之全註解開發
- Kotlin之KoinKotlin
- 帶你瞭解資料標註之文字標註
- 【Kotlin】初識Kotlin之物件導向Kotlin物件
- Java必知必會之註解Java
- Android 註解系列之Annotation(二)Android
- Spring 註解面面通 之 @MatrixVariableSpring
- java程式設計思想之註解Java程式設計
- java進階之自定義註解Java
- Spring系列之新註解配置+Spring整合junit+註解注入Spring
- Kotlin之UI篇KotlinUI
- SDWebImage原始碼解析之SDWebImageManager的註解Web原始碼
- 13.Android之註解問題Android
- Java基礎知識整理之註解Java
- 二. 重識Java之夯實註解Java
- Android 註解系列之APT工具(三)AndroidAPT
- Kotlin——集合詳解Kotlin
- 初識Kotlin之集合Kotlin
- Kotlin系列之迴圈Kotlin
- Kotlin——初級篇(二):變數、常量、註釋Kotlin變數
- JAVA-註解(2)-自定義註解及反射註解Java反射
- 註解專題(一)Java元註解,內建註解Java
- EventBus3.0解析之註解處理器S3
- Hibernate註解(一)之持久化實體持久化
- Java學習之註解Annotation實現原理Java
- Anntation(註解)-----Java之輔助工具(大有前途)Java
- Java面試題(19)Java元註解之@RetentionJava面試題