我有默认值的数据类。 data class Project(
val code: String,
val name: String,
val categories: List<String> = emptyList())
当某些值为空时,Java反射无法实例化类。我得到异常 java.lang.IllegalArgumentException: Parameter
如何在不使用kotlin-reflect的情况下获取属性设置器的方法引用? 基本上,如果我用Java写的方式我的代码,这是超级简单 fun setValue(i: Int) = Unit
val a: (Int) -> Unit = this::setValue
但var value: Int我越来越 var value = 1
val a: KMutableProperty0<Int>
我正在玩反思,我出来了这个问题。当通过::class语法使用绑定类的引用,我得到一个协变KClass类型: fun <T> foo(entry: T) {
with(entry::class) {
this // is instance of KClass<out T>
}
}
,因为我可以从文档学习,这将返回对象的确切类型,如果它是一个亚型的实例T,因此是方
class X {
fun someFunc(x: Int, y: String, z: Double) {
println("x = [$x], y = [$y], z = [$z]")
}
}
fun main(args: Array<String>) {
val func = X::someFunc
val instance = X(