相关疑难解决方法(0)

从版本2.11开始,scala反射功能(特别是wrt注释)的(当前)状态是什么?

scala似乎是JVM世界的一个很好的补充.它让我想起了嵌套在JVM世界中的C++,C#和Swift的奇怪混合体.

但是,由于缺少或过时的文档,许多scala的功能可能无法访问.

就其反射能力而言,这似乎尤其如此.

例如,我正在评估是否可以使用scala注释在运行时或编译时扩充scala类.我使用的是最新的scala版本2.11.作为一个激励性的例子,让我说我做了一个case class SimpleAnnotation() extends StaticAnnotation.我想在运行时case class使用该注释查找所有es.

这可能是注释中最典型和最简单的用例.

在C#和Java中,在运行时确定给定的类是否被注释是相对简单的.这是一个规范的用例,带有规范的答案.然而,在scala中,我不清楚我应该做些什么来实现这种行为,甚至是否可能.特别是,在扫描了scala注释和反射之前的一些材料之后,我想知道:

  • 这可能吗?
  • 这只能在运行时或兼容时间吗?
  • 这只能在scala版本2.10之前或之后实现吗?
  • 这只能在scala类上使用Java注释吗?
  • 为什么要getClass[AnnotatedClass].getAnnotations返回这些看似乱码的信息?
  • 为什么宏和反射似乎在scala中混淆了?

任何指导都表示赞赏......我确信我不是唯一一个感到困惑的人.

java reflection annotations scala

2
推荐指数
1
解决办法
1766
查看次数

标签 统计

annotations ×1

java ×1

reflection ×1

scala ×1