首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取正在从细化中进行细化的类

获取正在从细化中进行细化的类
EN

Stack Overflow用户
提问于 2021-01-14 17:03:23
回答 1查看 36关注 0票数 0

考虑下面的sealed trait

代码语言:javascript
复制
sealed trait Type

object Type {
    case object S
}

sealed trait Test{
    type Tpe <: Type
}

object Test {
    type Aux[T <: Type] = Test{ type Tpe = T }
}

给定一个表示Test.Aux[S.type]ClassSymbol,有没有一种方法可以获得表示sealed trait TestClassSymbol

EN

回答 1

Stack Overflow用户

发布于 2021-01-14 17:37:27

在深入研究API之后,我找到了以下解决方案:

代码语言:javascript
复制
def refinedSealedTrait(symbol: Symbols#Symbol): Symbol = {
  if (!symbol.isRefinementClass) {
    return false
  }
  val parents = symbol.parentSymbols
  if (parents.size != 1) {
    return false
  }
  val parentSymbol = parents.iterator.next

  if (parentSymbol.isSealed && parentSymbol.isTrait) {
    parentSymbol
  } else {
    c.abort(...)
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65716079

复制
相关文章

相似问题

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