我认为这个例子更容易展示。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