首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scala引用类型参数

Scala引用类型参数
EN

Stack Overflow用户
提问于 2014-03-31 23:01:19
回答 1查看 211关注 0票数 0

有没有办法引用类型参数?

例如,我想创建一个类,该类获取枚举的Sub类,然后使用他: example of I wantd:

代码语言:javascript
复制
class MyEnum1 extends Enumeration{
    type MyEnum=Value
    a1=Value("A1")
    b1=Value("B1")
}

class MyEnum2 extends Enumeration{
    type MyEnum=Value
    a2=Value("A2")
    b2=Value("B2")
}


class UseType[T:<Enumeration]{
    val values=T.values
}

你知道我该怎么做吗?

EN

回答 1

Stack Overflow用户

发布于 2014-03-31 23:45:55

我认为您需要在对象级别工作,而不是类型级别,并将一个实例(可以是单例对象)传递到您的类中:

代码语言:javascript
复制
object MyEnum1 extends Enumeration {
  type MyEnum1 = Value
  val a1 = Value("A1")
  val b1 = Value("B1")
}

object MyEnum2 extends Enumeration {
  type MyEnum2 = Value
  val a2 = Value("A2")
  val b2 = Value("B2")
}

class UseType[T <: Enumeration](val t: T) {
  println(t.values)
}

new UseType(MyEnum1)              //> MyEnum1.ValueSet(A1, B1)
new UseType(MyEnum2)              //> MyEnum2.ValueSet(A2, B2)

不过,我不太确定你为什么要这么做--你能解释一下你试图实现的目标吗?您可能需要为MyEnum1MyEnum2提供一个额外的共享特征,以便它们在您的代码中互换工作?

另请参阅this questionthis one,以及this one -根据您的用例,您可能更喜欢使用密封的案例类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22765062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档