错误:对withName的引用不明确

时间:2015-07-07 10:34:03

标签: 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

}

我在艺术类中设置了两个。

 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的引用不明确;它在同一个进口两次   范围由导入models.ArtModels.Type._和   import models.ArtModels.Status ._

请指导我如何解决。

2 个答案:

答案 0 :(得分:0)

你可以指定你想要的那个

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"))
}

答案 1 :(得分:0)

方法' withName'是' scala.Enumeration'的功能。类。您必须从对象实例中显式调用它。

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