Kotlin 反射
来源:互联网 发布:郝蕾骂河南人 知乎 编辑:程序博客网 时间:2024/05/17 19:18
反射是语言与库中的一组功能, 可以在运行时刻获取程序本身的信息。
- 类引用
要得到一个静态的已知的 Kotlin 类的引用, 可以使 class literal 语法: val c = MyClass::class
类引用是一个 KClass 类型的值,Kotlin 的类引用不是一个 Java 的类引用. 要得到 Java 的类引用, 请使用 KClass 对象实例的 .java 属性。
- 函数引用
使用 ::
操作符可以获取到函数引用,示例:
fun isOdd(x: Int) = x % 2 != 0val numbers = listOf(1, 2, 3)println(numbers.filter(::isOdd))
::
也可以用在重载函数上, 前提是必须能够推断出对应的函数参数类型, 或者可以指定类型: val predicate: (String) -> Boolean = ::isOdd
- 属性引用
使用 ::
操作符:
class A(val p: Int)fun main(args: Array<String>) { val prop = A::p println(prop.get(A(1))) // 打印结果为: "1"}val String.lastChar: Charget() = this[length - 1]fun main(args: Array<String>) { println(String::lastChar.get("abc")) // 打印结果为: "c"}
- 构造器引用
引用构造器使用 ::
操作符, 再加上类名称。
class Foofun function(factory : () -> Foo) { val x : Foo = factory()}function(::Foo)
参考
《Programming Kotlin》Stephen Samuel ,Stefan Bocutiu
《Kotlin in Action》Dmitry Jemerov,Svetlana Isakova
阅读全文
0 0
- Kotlin-反射
- Kotlin 反射
- Kotlin-反射
- Kotlin反射
- Kotlin-35.反射(Reflection)
- Kotlin进阶之反射
- 【Kotlin】Kotlin与Java反射实践
- kotlin反射中的类引用
- 学习kotlin第16天_反射
- Kotlin-50.JavaScript反射(JavaScript Reflection)
- Kotlin中反射机制的使用语法
- Kotlin
- Kotlin
- Kotlin
- Kotlin
- kotlin
- kotlin
- Kotlin
- Caffe神经网络结构汇总
- Chapter 6 讲义总结
- LeetCode 415. Add Strings (大数加法,字符串处理)
- 228. Summary Ranges
- 用tensorflow实现MNIST(手写数字识别)
- Kotlin 反射
- java中Collections.sort(list)排序和Comparator和Comparable的区别
- IntelliJ IDEA 2017.1.3破解mybatis插件
- h5+FileReader
- [三]Spring Boot 整合jsp
- 基于前端向后端传值问题,基于多选和单选的传值问题
- 路由器有线无线上网优先级
- Unity 核心API
- mac下获取磁盘的总空间大小和可用空间大小