真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Kotlin與Java互操作-創(chuàng)新互聯(lián)

1,Kotlin 調(diào)用Java

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

關(guān)于getter和setter的默認(rèn)調(diào)用

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

注意,如果一個(gè)java屬性只有setter,那么Kotlin就無法訪問。 Kotlin訪問java的屬性其實(shí)是默認(rèn)調(diào)用了這個(gè)屬性的getter函數(shù)

如果一個(gè)java函數(shù)是void類型的,那么kotlin調(diào)用后獲得的返回值類型是Unit

如果一個(gè)java函數(shù)名用了kotlin的關(guān)鍵字,比如:?in,?object,?is ,那么在kotlin中訪問的時(shí)候,要給函數(shù)名加上' ,

foo.`is`(bar)

2,null安全和平臺(tái)類型

java中的對(duì)象很可能是null,kotlin把java對(duì)象當(dāng)做平臺(tái)類型,對(duì)其null安全要求不再那么苛刻

val?list?=?ArrayList()?//?不需要java的new了 list.add("Item") val?size?=?list.size? val?item?=?list[0]?//?普通java對(duì)象,當(dāng)做平臺(tái)類型 //當(dāng)我們調(diào)用平臺(tái)類型的變量時(shí),?Kotlin不會(huì)在編譯階段就做null安全性檢查,?但運(yùn)行的時(shí)候可能會(huì)訪問失敗 item.substring(1)?//?編譯通過,運(yùn)行的時(shí)候如果item是null就會(huì)拋出exception? val?nullable:?String??=?item?//?正確 val?notNull:?String?=?item?//?編譯通過,但運(yùn)行時(shí)可能報(bào)錯(cuò)

我們不能在代碼中顯式聲明平臺(tái)類型,為了方便編譯階段檢查,我們?cè)O(shè)定以下記憶符號(hào):

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

  • (Mutable)Collection!?意思是 "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,類型對(duì)應(yīng)關(guān)系

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用了原始類型作為參數(shù),那么在kotlin中轉(zhuǎn)換為平臺(tái)類型,比如:List?在kotlin中對(duì)應(yīng)?List?

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

Java typeKotlin read-only typeKotlin mutable typeLoaded platform type
IteratorIteratorMutableIterator(Mutable)Iterator!
IterableIterableMutableIterable(Mutable)Iterable!
CollectionCollectionMutableCollection(Mutable)Collection!
SetSetMutableSet(Mutable)Set!
ListListMutableList(Mutable)List!
ListIteratorListIteratorMutableListIterator(Mutable)ListIterator!
MapMapMutableMap(Mutable)Map!
Map.EntryMap.EntryMutableMap.MutableEntry(Mutable)Map.(Mutable)Entry!

Java'的對(duì)應(yīng)如下:

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

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

參考文獻(xiàn):https://kotlinlang.org/docs/reference/java-interop.html


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


名稱欄目:Kotlin與Java互操作-創(chuàng)新互聯(lián)
文章來源:http://weahome.cn/article/cdppop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部