Overriding Scala Enumeration Value

后端 未结 4 879
孤街浪徒
孤街浪徒 2020-12-05 02:35

As far as I can tell, Scala has definitions for the Enumeration Value class for Value(Int), Value(String), and Value(Int, String).

Does anyone know of an example for

4条回答
  •  天涯浪人
    2020-12-05 03:01

    The Enumeration values are instance of the Val class. This class can be extended and a factory method can be added.

    object My extends Enumeration {
        val A = Value("name", "x")
        val B = Value("other", "y")
        class MyVal(name: String, val x : String) extends Val(nextId, name)
        protected final def Value(name: String, x : String): MyVal = new MyVal(name, x)
    }
    
    scala> My.B.id
    res0: Int = 1
    
    scala> My.B.x
    res1: String = y
    

提交回复
热议问题