android - Kotlin函数返回数据类错误,类型不匹配,必填: <Data Class>#1

标签 android generics kotlin

我有一个六元组的数据类。 我的函数应该返回一个 Sextuple。

出于某种原因,代码无法编译,提示类型不匹配。

我还有其他具有类似设置的函数——一些返回对,一些返回泛型——但它们都有效。我不确定为什么读取这种类型不匹配会出现问题。我曾尝试改变一切,但无济于事。

data class Sextuple<out A, out B, out C, out D, out E, out F>(
        val first: A,
        val second: B,
        val third: C,
        val fourth: D,
        val fifth: E,
        val sixth: F
    )

private fun <Sextuple>update(buttonEvent: Int, toggle0: ToggleButton, toggle5: ToggleButton, toggle10: ToggleButton): Sextuple{

        //some code to create cout[] and w vals 

        //correctly infers String type
        val display0 = display0Switch(Pair(w18, cout[13]))

        //correctly infers String type
        val display5 = display10Switch(Pair(w18, cout[10]))

        //correctly infers String type
        val display10 = display5Switch(Pair(w18, cout[7]))

        //correctly infers Int type
        val value0 = value0Switch(Pair(w12, cout[4]))

        //correctly infers Int type
        val value5 = value10Switch(Pair(w13, cout[2]))

        //correctly infers Int type
        val value10 = value5Switch(Pair(w14, cout[0]))

        val updated = Sextuple(display0, display5, display10, value0, value5, value10)
        return updated
    }

return updated 下它给出了以下错误:

类型不匹配。 必需:Sextuple#1(com.example.myApp.MainActivity.update 的类型参数) 预期:com.example.myApp.MainActivity.Sextuple

我不确定 #1 是什么意思,也不知道它为什么会造成问题。 感谢您的帮助。

最佳答案

您的方法签名不正确,您需要在 Sextuple 之后的尖括号中指定每个值的类型.

改变这个:

private fun <Sextuple>update([Your parameters]): Sextuple

对此:

private fun update([Your parameters]): Sextuple<String, String, String, Int, Int, Int>

关于android - Kotlin函数返回数据类错误,类型不匹配,必填: <Data Class>#1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57351983/

相关文章:

java - 从字符串中解析整数android java

android - 在android中禁用 Root View 的响应

c# - vNext 依赖注入(inject)通用接口(interface)

具有通用类型边界的 Java Builder 模式

java - 如何只替换1个字节的4位?

android - 选中时如何删除 ListView 中的文本项?

android - 获取所有应用列表

ios - 无法将类型 X 的值转换为预期的参数类型 XX

kotlin - Kotlin 中 Float 和 Double 类型的最小值和最大值

android - Kotlin fragment 类型不匹配