我正在尝试做一个通用类,但是我无法获得“ funTestInterface”来停止要求“ Nothing”,有人知道为什么会发生这种情况吗?谢谢!
https://docs.google.com/gview?embedded=true&url=http://54.64.229.48/dev/sites/default/files/final_features%2520for%2520Oh%252527%2520My%2520Concierge_29_06_2018.pdf
答案 0 :(得分:0)
GeneralClass应该是
class GeneralClass {
fun otro(param: ITest<String>, secondParam: Any) {
param.funTestInterface(secondParam as String)
}
}
答案 1 :(得分:0)
您要在此处使用star-projections。您可以将param
与星形投影一起使用,以仅安全地从中读取值(可以将其用作输出类型),但是在这种情况下,星形被视为输入类型。编译中的星形被视为类型Nothing
,它不等于Any
。话虽如此,您不能将Any
用作funTestInterface
的输入。
您可以通过生成GeneralClass.otro()
函数来解决此问题:
fun <T> otro(param: ITest<T>, secondParam: T) {
param.funTestInterface(secondParam)
}