【发布时间】:2012-01-04 06:22:19
【问题描述】:
也就是说,我想为枚举编写自己的 valueOf,因为这个方法现在被 Scala 设计者删除了(奇怪的调用 -- https://issues.scala-lang.org/browse/SI-4571)。
def valueOf[E <: Enumeration](s : String) =
E#Value.values.filter(it => it.toString==s).single()
不要太注意single,它只是类似Linq的包装器(见:Chart of IEnumerable LINQ equivalents in Scala?)。
问题在于 E#Value。
问题
如何正确访问此别名,即如何访问泛型类型的别名? 请将此枚举视为示例!
有 withName 方法,即使被认为是替换它也被设计破坏了,值 不是 名称,所以我不会使用它以避免进一步混淆代码正在做。
【问题讨论】:
标签: generics scala types alias