Intellij idea 扩展运算符函数调用模糊性
将java StringTokenizer转换为kotlin split时,我无法提供字符分隔符列表:Intellij idea 扩展运算符函数调用模糊性,intellij-idea,kotlin,Intellij Idea,Kotlin,将java StringTokenizer转换为kotlin split时,我无法提供字符分隔符列表: val delim : Array<Char> = arrayOf('(',')','{','}','[',/*many more...*/) sourceExpr.split(delimiters=*delim,ignoreCase=false,limit=0) val delim:Array=arrayOf('(','),'{','}','[',/*更多…*/) source
val delim : Array<Char> = arrayOf('(',')','{','}','[',/*many more...*/)
sourceExpr.split(delimiters=*delim,ignoreCase=false,limit=0)
val delim:Array=arrayOf('(','),'{','}','[',/*更多…*/)
sourceExpr.split(分隔符=*delim,ignoreCase=false,limit=0)
由于某种原因,kotlin编译器无法在split(vararg String,…)
和split(vararg Char,…)
之间消除歧义。问题:
问题不是歧义消除,而是类型不正确。在Kotlin中,
数组
相当于Java字符[]
。这意味着当您使用*delim
时,实际上是在创建vararg字符
(而不是vararg字符
)
相反,您应该更喜欢原语特定的CharArray
:
val delim: CharArray = charArrayOf('(', ')', '{', '}')
sourceExpr.split(delimiters = *delim, ignoreCase = false, limit = 0)