相关疑难解决方法(0)

Kotlin 中 KProperty1 的通用扩展

我有以下代码:

import kotlin.reflect.KProperty1


infix fun <T, R> KProperty1<T, R>.eq(value: R) {
    println(this.name + " = $value")
}

infix fun <T, R> KProperty1<T, R>.eq(value: KProperty1<T, R>) {
    println(this.name + " = " + value.name)
}

data class Person(val age: Int, val name: String, val surname: String?)

fun main() {
    Person::age eq 1  // Valid. First function
    Person::name eq "Johan"  // Valid. First function
    Person::name eq Person::name  // Valid. Second function
    Person::age eq 1.2f  // Valid, but it shouldn't be. First function …
Run Code Online (Sandbox Code Playgroud)

reflection kotlin kotlin-reflect

5
推荐指数
1
解决办法
1064
查看次数

标签 统计

kotlin ×1

kotlin-reflect ×1

reflection ×1