Tag: 反射

Kotlin类文字与空的左侧尚不支持?

我想检查一个类型是否符合另一个类型的if表达式如下所示: if (String::class is Any::class) 这给了我空的左侧的错误类文字尚不支持。 任何人都可以详细说明这个错误和/或告诉我应该如何做这个检查? 编辑(澄清):我不能做平等检查,因为我需要知道左边的类是否匹配右边的类或者是它的子类。 所以如果左边的这个类的实例可以安全地转换到右边的类。 基本上我需要相当于: if ("A string" is Any) 但没有一个字符串实例,字符串只是在这里使用一个例子。

如何访问kotlin中的对象声明的对象成员

假设你有下面的嵌套对象声明: object Father { val fathersField = "value" object Child { val childsField = 3.141592654 } } 当我使用从Father开始的反射时,我只能找到字段fathersField但没有成员引用Child实例。 是否有可能通过反射找到这些内部对象的声明? 如果是的话,怎么样?

我如何获得Kotlin类(K12在K12中)的声明函数?

基本上是这样。 我想知道如何得到一个KClass的函数/方法…看起来像我只能遍历属性和扩展属性。

如何在Kotlin中获得变量的运行时类?

我想获得一个变量的运行时KClass的引用。 我经历了关于类和反射的文档 ,但是文档似乎只解释了如何获得对KClass的静态引用(例如String::class String ) 我需要一个变量的运行时KClass。 这似乎并没有编译: fun test(x: Any) { val klazz = x::class } 在上面的例子中,如何获得x的KClass ?

我可以从Kotlin的函数类型变量中获得K函数吗?

我试图得到一个函数定义的名称 fun aFunction() = Unit fun functionName(function: () -> Unit) : String { val functionAsKFunction: KFunction<Unit> = someMiracle(function) return functionAsKFunction.name } assertEquals("aFunction", functionName(::aFunction))

如何获得Kotlin中实际泛型参数的实际类型参数?

使用指定的类型参数 ,可以编写一个内联函数,它可以在运行时通过反射来处理类型参数: inline fun <reified T: Any> f() { val clazz = T::class // … } 但是当用一个本身是一个泛型类的参数调用f时,似乎没有办法通过T::class获得它的实际类型参数: f<List<Integer>>() // T::class is just kotlin.collections.List 有没有办法通过反射来获得实际的泛化类型的类型参数?

我怎样才能得到一个Kotlin对象的名字?

如果我有顶级对象声明 package com.example object MyObject {} 如何将字符串com.example.MyObject转换为对MyObject的引用?

如何获得一个KClass的数组?

我写了下面的代码来获得一个KClass的Array<*> 。 Array::class 但是,这段代码有一个编译错误。 Kotlin:数组类的文字需要一个类型参数,请在尖括号中指定一个 你知道原因或解决方案吗?

我可以使用kotlin.reflect来获得一个字段的值

class A{ private var p:MyObj? = null } 看来我不能通过A :: p得到p,或者我只能通过java获得它? 我的kotlin版本是 ext.kotlin_version = '1.1.4-2'

Kotlin:大量的ConsPStack,我该如何避免?

我如何避免由我的应用程序创建的大量ConsPStack ? 什么时候创建? 我的申请: https : //github.com/Jire/Abendigo