2017-10-08 6 views
-1

にコレクションに変換できません、ここでIntellij saying that this won't do私はkotlinでのLinkedListにリストを変換しようとしているkotlin

のIntelliJ

からのエラーと私のコードがある。しかしKotlin REPLに私はこのような何かを行うことができます私のコードで間違って何

But this is perfectly normal

+1

PLSのようにあなたのコードを投稿しますテキスト(+エラーメッセージ)はスクリーンショットではありません。他の人がテキストを検索することはできません –

答えて

2

を入力していることを、私に教えて、あなたはUnitシングルトンを返す意味、何も返しません。 Unitは、Tokenのサブタイプではありません。したがって、Kotlinコンパイラは、とToken共有親クラス:Any(Kotlinの基底クラス、Javaの場合はObject)を使用します。

Unitを返す代わりに、elseブランチにExceptionをスローして、コンパイラにシグナルが発生しないようにする必要があります。

ただし、余分な文字を無視するだけの場合は、あなたは他の枝にnullを返し、およびフィルタリングするmapNotNullを使用することができます。

toParse.mapNotNull { ... }.toCollection(LinkedList<Token>())

また、あなたがmapNotNullToを使用してtoCollectionmap呼び出しを組み合わせることができます。

toParse.mapNotNullTo(LinkedList<Token>()) { ... }

1

さて、私はそれを考え出しました。戻り値の型がある場合は、他の分岐がユニットを返し、他の分岐トークンがあるためです。だから、IntelliJの試みは、これが不一致エラーにelseブランチで

関連する問題