欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Kotlin基礎(chǔ)教程之反射

Kotlin 基礎(chǔ)教程之反射

彭山ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

概述

反射是語言與庫中的一組功能, 可以在運(yùn)行時(shí)刻獲取程序本身的信息.在Kotlin中,不僅可以通過發(fā)射獲取類的信息,同時(shí)可以獲取函數(shù)和屬性的信息。也就是說,在在運(yùn)行時(shí)刻得到一個(gè)函數(shù)或?qū)傩缘拿Q和數(shù)據(jù)類型) 可以通過簡單的函數(shù)式, 或交互式的編程方式實(shí)現(xiàn).

在Java平臺上, 使用反射功能所需要的運(yùn)行時(shí)組件是作為一個(gè)單獨(dú)的JAR文件發(fā)布的( kotlinreflect.jar). 這是為了對那些不使用反射功能的應(yīng)用程序, 減少其運(yùn)行庫的大小. 如果你需要使用反射, 請注意將這個(gè).jar文件添加到你的項(xiàng)目的classpath中.

類引用

最基本的反射功能就是獲取一個(gè) Kotlin 類的運(yùn)行時(shí)引用. 要得到一個(gè)靜態(tài)的已知的 Kotlin 類的引用, 可以使用類字面值(class literal) 語法:

val c = MyClass::class

類引用是一個(gè) KClass 類型的值.

在Kotlin中定義了系列的常量,來表示類的信息.

  1. simpleName: String? 類的名稱
  2. qualifiedName: String? 類的全稱,包括包名
  3. members: Collection

函數(shù)引用

使用 :: 操作符來實(shí)現(xiàn)函數(shù)的引用。在高級函數(shù)中,我們通常使用函數(shù)作為參數(shù),在傳遞函數(shù)參數(shù)時(shí)通常都是用的函數(shù)引用,當(dāng)時(shí)還不太理解,現(xiàn)在終于解惑了。

fun main(args: Array<String>) {
  val ages = listOf(18, 23, 17, 25)
  ages.filter(::isOld)
      .forEach(::println) // 打?。?3,25
}

fun isOld(age: Int): Boolean = age > 20

這里,::isOdd 是一個(gè) (Int) -> Boolean 函數(shù)類型的值。

如果我們需要使用一個(gè)類的成員函數(shù), 或者一個(gè)擴(kuò)展函數(shù), 就必須使用限定符. 比如, String::toCharArray指向 String 上的一個(gè)擴(kuò)展函數(shù), 函數(shù)類型為: String.() -> CharArray

屬性引用

在Kotlin中, 對于包級別的屬性可以作為對象來訪問, 方法是使用 :: 操作符,我們可以獲取一個(gè)類型為 KProperty對象。

var x = 1
fun main(args: Array<String>) {
  println(::x.get()) // 打印結(jié)果為: "1"
  ::x.set(2)
  println(x) // 打印結(jié)果為: "2"
}

  1. 對于val屬性,我們可以通過KProperty的get()函數(shù)可以得到屬性值, 通過它的 name 屬性可以得到屬性名稱.
  2. 對于var屬性,返回的屬性對象的類型為 KMutableProperty, 我們不僅可以通過get()和name獲取該對象的屬性值和屬性名稱,還可以通過set()函數(shù)設(shè)置其屬性值。
  3. 對于訪問類的成員屬性, 我們需要使用限定符。返回的屬性對象的類型為KProperty1

構(gòu)造器引用

構(gòu)造器引用可以用于使用函數(shù)類型對象的地方, 但這個(gè)函數(shù)類型接受的參數(shù)應(yīng)該與構(gòu)造器相同, 返回值應(yīng)該是構(gòu)造器所屬類的對象實(shí)例. 引用構(gòu)造器使用 :: 操作符, 再加上類名稱.

 fun main(args: Array<String>) {
    var person = newPerson("Jone", 20, "SH", ::Person)
  }

  fun newPerson(name: String, age: Int, address: String, factory: (String, Int, String) -> Person) : Person{
    return factory(name, age, address)
  }

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

本文題目:Kotlin基礎(chǔ)教程之反射
當(dāng)前路徑:http://aaarwkj.com/article40/ihhoho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)網(wǎng)站導(dǎo)航、定制網(wǎng)站、網(wǎng)站策劃外貿(mào)網(wǎng)站建設(shè)、商城網(wǎng)站

廣告

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

小程序開發(fā)
国产三级网站在线观看播放| 91国产性感美女视频| 日韩亚洲中文一区三级黄片| 欧美另类精品一区二区三区| 亚洲视频精品一区二区三区| 福利视频免费观看欧美| 精品国产av一区二区三广区| 九七青青草视频在线观看| 五月天丁香婷婷深爱| 久久re这里只有精品6| 一区二区三区视频免费观看| 亚洲中文字幕高清乱码毛片| 激情五月婷婷我有我色| 国产午夜亚洲精品福利| 日韩精品中文字幕免费人妻| av电影网站中文字幕| 亚洲黄色av网站在线| 日韩最新人妻在线不卡| 亚洲国产精品中文字幕一区久久 | 国产剧免费看视频网站成人| 在线中文字幕日韩精品| 日本在线观看高清区一区二| 白色发布会在线观看免费| 91免费版在线观看网址| 欧美精品在线高清观看| 另类视频网站在线观看| 精品福利视频一区二区| 搡老女人老91妇女老熟女| 97成人在线免费视频| 欧美一区二区三区人妻熟妇| 欧美成人一区二区三区片| 亚洲成人av日韩在线| 亚洲国产精品高清久久| 免费在线观看一区二区三区视频| 国产精品免费视频能看的| 亚洲图文一区二区三区四区| 国产自拍偷拍自拍偷拍| 亚州精品乱码久久电影| 欧美色欧美亚洲另类视频| 一区二区三区在线观看日韩| 久国产精品久久久极品|