Intellij idea Can';t转换为kotlin中的集合
我正在尝试将列表转换为kotlin中的LinkedList,下面是我的代码,其中包含来自intellij的错误 但是在Kotlin REPL我可以做这样的事情Intellij idea Can';t转换为kotlin中的集合,intellij-idea,compiler-errors,kotlin,Intellij Idea,Compiler Errors,Kotlin,我正在尝试将列表转换为kotlin中的LinkedList,下面是我的代码,其中包含来自intellij的错误 但是在Kotlin REPL我可以做这样的事情 我的代码怎么了?好的,我知道了,什么时候有返回类型Any,因为else分支返回单元,而其他分支标记。因此intellij试图告诉我,这是else分支中的类型不匹配错误,您不返回任何内容,这意味着您返回了单元单例。 单元不是令牌的子类型。因此,Kotlin编译器采用单元和令牌共享父类:任何(Kotlin的基类,类似于Java中的对象)
我的代码怎么了?好的,我知道了,什么时候有返回类型Any,因为else分支返回单元,而其他分支标记。因此intellij试图告诉我,这是
else
分支中的类型不匹配错误,您不返回任何内容,这意味着您返回了单元
单例。
单元
不是令牌
的子类型。因此,Kotlin编译器采用单元
和令牌
共享父类:任何
(Kotlin的基类,类似于Java中的对象
)
您不应该返回单元
,而应该在else分支上抛出异常,以向编译器发出它不能发生的信号
但是,如果您只想忽略额外的字符。您可以在else分支上返回null,并使用mapNotNull
进行筛选:
toParse.mapNotNull{…}.toCollection(LinkedList())
此外,您还可以使用mapNotNullTo
将toCollection
和map
调用组合起来:
toParse.mapNotNullTo(LinkedList()){…}
请将您的代码作为文本(+错误消息)而不是屏幕截图发布。其他人无法搜索文本