我有一个六元组的数据类。 我的函数应该返回一个六元组。
由于某种原因,代码将无法编译,并抱怨类型不匹配。
我还有其他功能具有相似的设置-一些返回对,一些返回泛型-但它们都起作用。我不确定为什么读取这种类型的不匹配会有问题。我试图使事情无济于事。
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的类型参数) Expected:com.example.myApp.MainActivity.Sextuple
我不确定#1是什么意思,或者为什么会造成问题。 感谢帮助。
答案 0 :(得分:3)
您的方法签名不正确,您需要在Sextuple
之后的尖括号中指定每个值的类型。
更改此:
private fun <Sextuple>update([Your parameters]): Sextuple
对此:
private fun update([Your parameters]): Sextuple<String, String, String, Int, Int, Int>