继续还是探讨Kotlin反射相关的知识点,说实话这块不是太好理解,待在实际工作中去对它进行实践慢慢来加深印象。
属性引用进阶:
在Kotlin中的反射其实是跟Java的反射有对应关系的,具体相关的定义都放在下面这里:
下面来看一下:
下面看一下它的细节:
继续来看这种映射:
看一下细节:
由于是咱们自定义的类,所以Java和Kotlin的class是一样的,但是如果用系统的类来做实验就不一样了,如下:
构造方法引用(Constructor Reference):
构造方法其实也是一个方法嘛,也存在引用,所以下面来看一下它如何来用:
咱们来调用一下:
还是有点难理解的,这里对于传构造方法引用的要求总结一下:
1、函数对象的参数要与构造方法的参数保持一致(体现在参数个数与参数类型上)。
2、函数对象的返回结果与构造方法所在类的类型保持一致。
如果咱们将返回参数修改一下程序立马就会报错:
引用特定对象的实例方法&属性:
我们可以引用特定对象的一个实例方法,以前我们一般都是用"String::get"通过类来引用的,下面来看一下:
那下面看下它的输出是多少?
因为get引用是拿字符串中指定位置的字符,如下:
下面再来看:
如何理解?
而该变量通过"test"::length的属性引用其值为4,所以最终打印就是4了。
那如果通过String类的属性的引用实现上面同样的输出,要如何写呢,看下面: