我認爲這個例子更容易展示。scala:防止伴侶對象隱藏原始類的定義
比方說,我有一個條件的情況下類,與使用條件同伴目的是提供一種替代的構造,就像這樣:
case class Condition(
field: String,
values: List[String])
}
object Condition {
def apply(field: String, value: String): Condition = {
Condition(field, List(value))
}
}
當我從另一個導入它,我得到以下警告(這最終會變成爲錯誤):
import utils.query.Condition
[warn] [...]/ConditionBuilder.scala:14: imported `Condition' is permanently hidden by definition of object Condition in package query
[warn] import utils.query.Condition
[warn] ^
[warn] one warning found
我想有機會獲得條件類型,declargin變量的類型時,和同伴對象,執行時它的一個方法
是否有某種方法可以實現這一點並避免此警告(當然,重命名伴隨對象除外)?
您使用的是哪個版本的Scala編譯器? –
我可以問一下,如果條件在包查詢中有定義嗎?在這種情況下,只需刪除導入即可完成。 –
我正在使用帶有play 2.0.3捆綁的scala編譯器:歡迎使用Scala 2.9.1.final(Java HotSpot(TM)64位服務器VM,Java 1.7.0_06)。 – opensas