我想要一个简单的enumDescr
任何 Scala 3 枚举的函数。
例子:
@description(enumDescr(InvoiceCategory))
enum InvoiceCategory:
case `Travel Expenses`
case Misc
case `Software License Costs`
在 斯卡拉 2 这很简单( Enumeration
):def enumDescr(enum: Enumeration): String =
s"$enum: ${enum.values.mkString(", ")}"
但是在中是怎么做的斯卡拉 3 :def enumDescr(enumeration: ??) = ...
最佳答案
我没有看到所有人共享的任何共同特征 enum
伴侣对象。
您仍然可以调用 values
不过,反射(reflection)一下:
import reflect.Selectable.reflectiveSelectable
def descrEnum(e: { def values: Array[?] }) = e.values.mkString(",")
enum Foo:
case Bar
case Baz
descrEnum(Foo) // "Bar,Baz"
关于scala - 如何为 Scala 3 枚举创建通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69743692/