如何使用Scala反射来找到自我类型特征?

最高007
trait Bar
trait Dar

trait Foo {  self : Bar with Dar =>

}

trait Child extends Foo

如何使用新的反射API从typeOf [Foo]或typeOf [Child]中查找其自身类型具有Bar和Dar特征?

ghik
Welcome to Scala version 2.10.1 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_10).
Type in expressions to have them evaluated.
Type :help for more information.

scala> import scala.reflect.runtime.universe._
import scala.reflect.runtime.universe._

scala> :paste
// Entering paste mode (ctrl-D to finish)

trait Bar
trait Dar

trait Foo {  self : Bar with Dar =>

}

// Exiting paste mode, now interpreting.

defined trait Bar
defined trait Dar
defined trait Foo

scala> val selfTypeOfFoo = typeOf[Foo].typeSymbol.asClass.selfType
selfTypeOfFoo: reflect.runtime.universe.Type = Foo with Bar with Dar

如果要进一步检查自我类型,可以将其与RefinedType以下项进行匹配

scala> val RefinedType(parents, _) = selfTypeOfFoo
parents: List[reflect.runtime.universe.Type] = List(Foo, Bar with Dar)

scala> val RefinedType(innerParents, _) = parents(1)
innerParents: List[reflect.runtime.universe.Type] = List(Bar, Dar)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用反射来修改对象的结构

来自分类Dev

在Scala中,对案例类classtag使用反射来查找伴随对象的apply方法

来自分类Dev

指特征的自我类型

来自分类Dev

Delphi在类过程中使用反射来获取动态类类型

来自分类Dev

使用HashMap和反射来调用具有可变参数类型的方法

来自分类Dev

如何使用scala反射按返回类型过滤方法?

来自分类Dev

使用反射来调用公共方法

来自分类Dev

具有通用自我类型的Scala特征

来自分类Dev

使用反射获取在Scala中实现特征的所有类

来自分类Dev

如何使用反射来获取/设置属性的值?

来自分类Dev

如何使用Scala反射查找返回类型参数的方法的类型?

来自分类Dev

如何使用反射来调用与原始参数的方法?

来自分类Dev

如何使用Scala反射获取声明的类/特征?

来自分类Dev

在Scala中创建自我类型的实例

来自分类Dev

Scala使用扩展特征的类的反射来访问运行时类型的成员

来自分类Dev

在Rust中,如何使自我成为特征?

来自分类Dev

如何使用反射来动态调用类型?

来自分类Dev

使用反射来验证特征的所有实例具有唯一字段

来自分类Dev

使用Kotlin中的泛型类型的反射来获取静态字段的值

来自分类Dev

如何在特征内找到scala对象

来自分类Dev

使用反射来修改对象的结构

来自分类Dev

在参数化特征中引用自我类型

来自分类Dev

指特征的自我类型

来自分类Dev

PHP在Hack中使用反射来获取通用类型

来自分类Dev

如何使用Scala反射查找返回类型参数的方法的类型?

来自分类Dev

如何使用反射来处理所有类型?

来自分类Dev

使用反射时如何找到接口实例的具体类型?

来自分类Dev

使用反射来调用方法

来自分类Dev

如何使用反射来运行两个变量

Related 相关文章

  1. 1

    使用反射来修改对象的结构

  2. 2

    在Scala中,对案例类classtag使用反射来查找伴随对象的apply方法

  3. 3

    指特征的自我类型

  4. 4

    Delphi在类过程中使用反射来获取动态类类型

  5. 5

    使用HashMap和反射来调用具有可变参数类型的方法

  6. 6

    如何使用scala反射按返回类型过滤方法?

  7. 7

    使用反射来调用公共方法

  8. 8

    具有通用自我类型的Scala特征

  9. 9

    使用反射获取在Scala中实现特征的所有类

  10. 10

    如何使用反射来获取/设置属性的值?

  11. 11

    如何使用Scala反射查找返回类型参数的方法的类型?

  12. 12

    如何使用反射来调用与原始参数的方法?

  13. 13

    如何使用Scala反射获取声明的类/特征?

  14. 14

    在Scala中创建自我类型的实例

  15. 15

    Scala使用扩展特征的类的反射来访问运行时类型的成员

  16. 16

    在Rust中,如何使自我成为特征?

  17. 17

    如何使用反射来动态调用类型?

  18. 18

    使用反射来验证特征的所有实例具有唯一字段

  19. 19

    使用Kotlin中的泛型类型的反射来获取静态字段的值

  20. 20

    如何在特征内找到scala对象

  21. 21

    使用反射来修改对象的结构

  22. 22

    在参数化特征中引用自我类型

  23. 23

    指特征的自我类型

  24. 24

    PHP在Hack中使用反射来获取通用类型

  25. 25

    如何使用Scala反射查找返回类型参数的方法的类型?

  26. 26

    如何使用反射来处理所有类型?

  27. 27

    使用反射时如何找到接口实例的具体类型?

  28. 28

    使用反射来调用方法

  29. 29

    如何使用反射来运行两个变量

热门标签

归档