2013-08-12 3 views
8

特定のユースケースに対して可変リンクリストを使用する必要があります。しかし、私は"参照は接頭語にする必要があります"の警告を回避したいと思います。輸入エイリアシングスカラの可変コレクションと "参照はプレフィックス付きの警告にする必要があります"

が解決策になるようだ:

import scala.collection.mutable.{LinkedList => MutableLinkedList} 

それは空のLinkedListパターンマッチングを除き、ほとんどの場合に動作しますが、これはまだ警告生成:

case MutableLinkedList() => // do Something 

を唯一の方法Iこの警告を取り除くことができるのは、空リストの完全修飾の小文字をチェックすることだと思われます。

case scala.collection.mutable.LinkedList() => // do Something 

最初のケースで警告が表示されないのはなぜですか?

答えて

15

ちょうどmutableをパッケージインポート

mutable.LinkedList(1, 2, 3) 

たり、より簡潔なバリアントを好む場合:

import collection.{mutable => m} 
m.LinkedList(1, 2, 3) 

パターンマッチングでも動作します。

+3

説明https://blog.jetbrains.com/scala/2012/05/26/mutableimmutable-collections-prefix-convention-support/ – user7610

2

2.10.2シェルで試したところ、警告が表示されませんでした。 "エイリアス" の

一つの方法mutable.LinkedList抽出を行っている:

scala> MutableLinkedList(1,2,3,4,5) 
res0: scala.collection.mutable.LinkedList[Int] = LinkedList(1, 2, 3, 4, 5) 

scala> val LL = MutableLinkedList 
LL: scala.collection.mutable.LinkedList.type = [email protected] 

scala> res0 match { case LL(1,2, _*) => "yey"; case _ => "bad" } 
res3: String = yey 

参照してくださいか?

import collection.mutable 

と任意の可変コレクションでそれを使用します:今MutableLinkedListコンパニオンオブジェクトへのLLポイントが

+0

IntelliJ Community Editionで警告が表示されていましたが、あなたの提案はすばらしく機能します。ありがとう。 – ArtisanV

関連する問題