Scala 错误:对withName的引用不明确

Scala 错误:对withName的引用不明确,scala,enums,Scala,Enums,我在一个包中有两个枚举 一个是状态 object Status extends Enumeration{ type Status = Value val ACTIVE , INACTIVE = Value } object Type extends Enumeration { type Type = Value val PAINTING , SCULPTURE , MANUSCRIPT= Value } 另一种是类型 object Status extends Enumera

我在一个包中有两个枚举

一个是状态

object Status extends Enumeration{

  type Status = Value
  val ACTIVE , INACTIVE  = Value

}
object Type extends Enumeration {
type Type = Value
val PAINTING , SCULPTURE , MANUSCRIPT= Value

}
另一种是类型

object Status extends Enumeration{

  type Status = Value
  val ACTIVE , INACTIVE  = Value

}
object Type extends Enumeration {
type Type = Value
val PAINTING , SCULPTURE , MANUSCRIPT= Value

}
我在艺术课上为他们两个都安排了二传

 class Art {
//some code

    def setStatus(setStatus: Status) = {
      status = setStatus
    }

    def settype(settype:Type) = {
        type = settype 
      }
    }
现在,我正试图使用类似这样的withName()函数从另一个类设置这些枚举

    class B {
// some code
    val art = new Art
    art.settype(withName("PAINTING"))

    art.setStatus(withName("ACTIVE"))
    }
它给了我这个错误

对withName的引用不明确;它在同一时间被导入两次 按导入模型.ArtModels.Type.和 导入models.ArtModels.Status_


请指导我如何解决此问题。

您可以指定需要这样的解决方案

class B {
// some code
  val art = new Art
  art.settype(Type.withName("PAINTING"))
  art.setStatus(Status.withName("ACTIVE"))
}
object Test extends App{
  // some code
  val art = new Art
  art.settype(Models.Type.withName("PAINTING"))
  art.setStatus(Models.Status.withName("ACTIVE"))
}
编辑:

如果在另一个对象中定义枚举,可以这样指定它

class B {
// some code
  val art = new Art
  art.settype(Type.withName("PAINTING"))
  art.setStatus(Status.withName("ACTIVE"))
}
object Test extends App{
  // some code
  val art = new Art
  art.settype(Models.Type.withName("PAINTING"))
  art.setStatus(Models.Status.withName("ACTIVE"))
}

方法“withName”是“scala.Enumeration”类的函数。必须从对象实例显式调用它

class B {    
  // some code
  val art = new Art
  art.setType(Type.withName("PAINTING"))
  art.setStatus(Status.withName("ACTIVE"))
}

请注意,
type
在Scala中是一个保留字,不能用作变量名,除非您使用back tick。我在这里实际简化了它。我没有使用“type”,我也尝试过这样做,但它给出了“未找到:值类型”和“未找到:值状态”关于类型和状态虽然我有正确的导入你是这样导入的吗<代码>导入状态。您是否在其他对象中定义了枚举?如果是这样,请像这样导入
导入Models.Status.\u
如果您所说的其他对象是指在其他包中,而不是在yes中,那么我在不同的包中有enum和调用类,并且我已经导入了您提到的enum,但它对我不起作用