
类型不匹配:推断类型是(String,Boolean) – >除了((String,Boolean) – > Unit)?预计
我的类型宣言是
private val ConsisFilter_Click = { filterText: String,isstrictSearch: Boolean -> try { //My Codes } catch (e: Exception) { try { alert{}.show() }catch (ignored: Exception) {} }}var ConsisFilterClickEvent:((filterText: String,isstrictSearch: Boolean) -> Unit)? = null 像这样的assigninkg
inputDialog!!.ConsisFilterClickEvent = ConsisFilter_Click
我在其他地方遵循相同的模式,但没有得到任何错误.只有这个特定的部分才会产生问题.难道我做错了什么.请帮我.
注意:如果我将ConsisFilter_Click的所有代码(try catch块的代码)放入一个单独的函数中,只需从ConsisFilter_Click调用该函数,那么每个都可以正常工作
谢谢
解决方法 你不能将ConsisFilter_Click分配给变量ConsisFilterClickEvent,因为它的隐式类型是(String,Boolean) – >任何而不是(String,Boolean) – >单元.由于catch-block的返回类型是Unit,但try-block的最后一个语句的返回类型不是Unit,如果不使用显式类型变量,则会使lambda的返回类型为Any.您必须明确定义变量ConsisFilter_Click的类型,如下所示:
val ConsisFilter_Click: (filterText: String,isstrictSearch: Boolean) -> Unit = { filterText: String,isstrictSearch: Boolean -> try { //My Codes } catch (e: Exception) { try { alert{}.show() }catch (ignored: Exception) {} }} 总结 以上是内存溢出为你收集整理的android – Kotlin:功能类型不匹配全部内容,希望文章能够帮你解决android – Kotlin:功能类型不匹配所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)