- Java 基本數(shù)據(jù)類型 與 Kotlin 數(shù)據(jù)類型映射
- Java 包裝類 與 Kotlin 數(shù)據(jù)類型映射
- Java 常用類 與 Kotlin 數(shù)據(jù)類型映射
- Java 集合類型 與 Kotlin 數(shù)據(jù)類型映射
??Kotlin畢竟還是一種新語言,所以很多項(xiàng)目好渠、組件 和 框架還是用 Java 開發(fā)的袖订,目前 Kotlin 還不能完全取代 Java,因此有時(shí)會(huì)使用 Koltin 調(diào)用 Java 寫好的組件或框架,Kotlin 在設(shè)計(jì)之初時(shí)就考慮了到這一點(diǎn)肆氓。
??Kotlin 最終會(huì)編譯為字節(jié)碼在 Java 虛擬機(jī)上運(yùn)行蛔趴,它的一些數(shù)據(jù)類型會(huì)編譯為 Java 中的數(shù)據(jù)類型嚣崭。Kotlin 中的一些數(shù)據(jù)類型 與 Java 的一些數(shù)據(jù)類型有一定的映射關(guān)系宙拉,主要分為 Java 基本數(shù)據(jù)類型、Java 包裝類丙笋、Java 常用類 和 Java 集合類型這 4 個(gè)方面谢澈。
Java 基本數(shù)據(jù)類型 與 Kotlin 數(shù)據(jù)類型映射
??Java 基本數(shù)據(jù)類型 與 Kotlin數(shù)據(jù)類型映射如下,其中 Kotlin 這些數(shù)據(jù)類型都是基本數(shù)據(jù)類型御板,位于 Koltin 包中锥忿。
Java 類型 | Kotlin 類型 |
---|---|
byte | koltin.Byte |
short | koltin.Short |
int | koltin.Int |
long | koltin.Long |
char | koltin.Char |
float | koltin.Float |
double | koltin.Double |
boolean | koltin.Boolean |
Java 包裝類 與 Kotlin 數(shù)據(jù)類型映射
??Java 包裝類是對(duì) Java 基本數(shù)據(jù)類型的包裝,Java 包裝類可以有空值怠肋,所以映射到 Kotlin 數(shù)據(jù)類型時(shí)是可空類型敬鬓,如下:
Java 類型 | Kotlin 類型 |
---|---|
java.lang.Byte | koltin.Byte? |
java.lang.Short | koltin.Short? |
java.lang.Integer | koltin.Int? |
java.lang.Long | koltin.Long? |
java.lang.Character | koltin.Char? |
java.lang.Float | koltin.Float? |
java.lang.Double | koltin.Double? |
java.lang.Boolean | koltin.Boolean? |
Java 常用類 與 Kotlin 數(shù)據(jù)類型映射
??Java 常用類是位于 java.lang
中的一些核心類,他們映射到 Kotlin 數(shù)據(jù)類型時(shí)是非空或可空類型笙各,如下:
Java 類型 | Kotlin 類型 |
---|---|
java.lang.Object | koltin.Ang! |
java.lang.Cloneable | koltin.Cloneable! |
java.lang.Comparable | koltin.Comparable! |
java.lang.Enum | koltin.Enum! |
java.lang.Annotation | koltin.Annotation! |
java.lang.Number | koltin.Number! |
java.lang.Deprecated | koltin.Deprecated! |
java.lang.Throwable | koltin.Throwable! |
java.lang.CharSequence | koltin.CharSequence! |
java.lang.String | koltin.String! |
??提示:Kotlin 把 Java 中定義的數(shù)據(jù)類型稱為 “平臺(tái)類型”钉答,Kotlin 語法中并沒有平臺(tái)類型的表示方式(即:平臺(tái)類型不能用正確的語法表示),但是在 IntelliJ IDEA 等 IDE 工具 或 一些文檔中采用 “數(shù)據(jù)類型!” 方式表示杈抢。
Java 集合類型 與 Kotlin 數(shù)據(jù)類型映射
??Java 集合類型映射到 Kotlin 的數(shù)據(jù)類型如下数尿,Java 的集合不區(qū)分可變和不可變,而 Kotlin 中有這樣的區(qū)別惶楼,在表示中還有一種平臺(tái)類型右蹦,在混合編程時(shí) Kotlin 將它們看作可空或非空,所以平臺(tái)類型 (Mutable)Iterator<T>!
表示的是 Iterator<T>
歼捐、Iterator<T>?
何陆、 MutableIterator<T>
和 MutableIterator<T>?
四種可能性。
Java 類型 | Kotlin 不可變類型 | Kotlin 可變類型 | 平臺(tái)類型 |
---|---|---|---|
Iterator<T> | Iterator<T> | MutableIterator<T> | (Mutable)Iterator<T>! |
Iterable<T> | Iterable<T> | MutableIterable<T> | (Mutable)Iterable<T>! |
Collection<T> | Collection<T> | MutableCollection<T> | (Mutable)Collection<T>! |
Set<T> | Set<T> | MutableSet<T> | (Mutable)Set<T>! |
List<T> | List<T> | MutableList<T> | (Mutable)List<T>! |
ListIterator<T> | ListIterator<T> | MutableListIterator<T> | (Mutable)ListIterator<T>! |
Map<K, V> | Map<K, V> | MutableMap<K, V> | (Mutable)Map<K, V>! |
Map.Entry<K, V> | Map.Entry<K, V> | MutableMap.MutableEntry<K, V> | (Mutable)Map.(Mutable)Entry<K, V>! |