99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

Kotlin與Java互操作-創新互聯

1,Kotlin 調用Java

創新互聯是專業的疊彩網站建設公司,疊彩接單;提供成都網站設計、成都網站制作,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行疊彩網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!import?java.util.* fun?demo(source:?List<Int>)?{ ????val?list?=?ArrayList<Int>()???? ????for?(item?in?source)?{ ????????list.add(item) ????} ????for?(i?in?0..source.size?-?1)?{ ????????list[i]?=?source[i]?//?get?and?set?are?called ????} }

關于getter和setter的默認調用

import?java.util.Calendar fun?calendarDemo()?{ ????val?calendar?=?Calendar.getInstance() ????if?(calendar.firstDayOfWeek?==?Calendar.SUNDAY)?{??//?調用了getFirstDayOfWeek() ????????calendar.firstDayOfWeek?=?Calendar.MONDAY??????//?調用了?setFirstDayOfWeek() ????} ????if?(!calendar.isLenient)?{?????????????????????????//?調用了isLenient() ????????calendar.isLenient?=?true??????????????????????//?調用了setLenient() ????} }

注意,如果一個java屬性只有setter,那么Kotlin就無法訪問。 Kotlin訪問java的屬性其實是默認調用了這個屬性的getter函數

如果一個java函數是void類型的,那么kotlin調用后獲得的返回值類型是Unit

如果一個java函數名用了kotlin的關鍵字,比如:?in,?object,?is ,那么在kotlin中訪問的時候,要給函數名加上' ,

foo.`is`(bar)

2,null安全和平臺類型

java中的對象很可能是null,kotlin把java對象當做平臺類型,對其null安全要求不再那么苛刻

val?list?=?ArrayList<String>()?//?不需要java的new了 list.add("Item") val?size?=?list.size? val?item?=?list[0]?//?普通java對象,當做平臺類型 //當我們調用平臺類型的變量時,?Kotlin不會在編譯階段就做null安全性檢查,?但運行的時候可能會訪問失敗 item.substring(1)?//?編譯通過,運行的時候如果item是null就會拋出exception? val?nullable:?String??=?item?//?正確 val?notNull:?String?=?item?//?編譯通過,但運行時可能報錯

我們不能在代碼中顯式聲明平臺類型,為了方便編譯階段檢查,我們設定以下記憶符號:

  • T!?意思是 "T?或T?",

  • (Mutable)Collection<T>!?意思是 "Java collection of?T?may be mutable or not, may be nullable or not",

  • Array<(out) T>!?意思是"Java array of?T?(or a subtype of?T), nullable or not"

3,類型對應關系

Java typeKotlin type
bytekotlin.Byte
shortkotlin.Short
intkotlin.Int
longkotlin.Long
charkotlin.Char
floatkotlin.Float
doublekotlin.Double
booleankotlin.Boolean

Java typeKotlin type
java.lang.Objectkotlin.Any!
java.lang.Cloneablekotlin.Cloneable!
java.lang.Comparablekotlin.Comparable!
java.lang.Enumkotlin.Enum!
java.lang.Annotationkotlin.Annotation!
java.lang.Deprecatedkotlin.Deprecated!
java.lang.CharSequencekotlin.CharSequence!
java.lang.Stringkotlin.String!
java.lang.Numberkotlin.Number!
java.lang.Throwablekotlin.Throwable!

Edit Page


Java typeKotlin type
java.lang.Bytekotlin.Byte?
java.lang.Shortkotlin.Short?
java.lang.Integerkotlin.Int?
java.lang.Longkotlin.Long?
java.lang.Characterkotlin.Char?
java.lang.Floatkotlin.Float?
java.lang.Doublekotlin.Double?
java.lang.Booleankotlin.Boolean?

注意,如果java用了原始類型作為參數,那么在kotlin中轉換為平臺類型,比如:List<java.lang.Integer>?在kotlin中對應?List<Int!>?

Kotlin的集合類型可以是只讀的,或者可變的,所以,跟java的集合類型對應關系如下? (下表里面的這些Kotlin 類型都在包?kotlin.collections里):

Java typeKotlin read-only typeKotlin mutable typeLoaded platform type
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>!

Java'的對應如下:

Java typeKotlin type
int[]kotlin.IntArray!
String[]kotlin.Array<(out) String>!

注意: java的static 變量不能作為kotlin?companion?對象直接訪問,必須要帶上java類型才可以,比如?java.lang.Integer.toHexString(foo).

參考文獻:https://kotlinlang.org/docs/reference/java-interop.html


另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

本文標題:Kotlin與Java互操作-創新互聯
新聞來源:http://www.yijiale78.com/article8/cdppop.html

成都網站建設公司_創新互聯,為您提供網站營銷手機網站建設網站排名軟件開發搜索引擎優化網站策劃

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

綿陽服務器托管