android 如何将浮点数作为类型传递

cld4siwp  于 2023-01-15  发布在  Android
关注(0)|答案(2)|浏览(126)

我需要在代码中使用配置对象。我有一个typealias,如下所示:

typealias MyParam = Triple<String, Any, Type>

然后,我有一个在运行时填充的列表:

val paramsList: MutableList<MyParam> = mutableListOf();

现在,当我尝试填充列表时,我得到一个错误:

paramsList.add(Triple("Strength", 0, Float))

显示“类型不匹配:所需类型。找到浮点型。同伴”“。

我怎样才能避免这个错误呢?我最终需要使用这个Type来转换一个值。

cxfofazt

cxfofazt1#

可以使用::class来引用Kotlin的KClass,并使用.java属性来从其中获取Java的Class(它实现Type):

paramsList.add(Triple("Strength", 0, Float::class.java))

对于带有泛型的更复杂的类型,如List<Float>,使用typeOf<List<Float>>(),它给出了对应于List<Float>KType,然后使用javaType从它得到Type

import kotlin.reflect.typeOf
import kotlin.reflect.javaType

paramsList.add(Triple("Strength", 0, typeOf<List<Float>>().javaType))
wdebmtf2

wdebmtf22#

你可以试着调用一个浮点类型的列表。如果你得到一个错误,分享错误代码,我会帮助你。

相关问题