【发布时间】:2019-12-26 15:12:43
【问题描述】:
有没有办法使用 Scala 中定义的注解,以便它们可以与 Java 代码一起使用?我有一个库,其中包含一些我想在 Java 中使用的注释
【问题讨论】:
-
视情况而定。很可能没有。什么库,什么注解,如何“工作”?
标签: java scala reflection annotations scala-reflect
有没有办法使用 Scala 中定义的注解,以便它们可以与 Java 代码一起使用?我有一个库,其中包含一些我想在 Java 中使用的注释
【问题讨论】:
标签: java scala reflection annotations scala-reflect
来自 scaladocs 的引用:
注解的基类。 直接扩展此类的注释不会保留在类文件中。启用存储 类文件的 Scala 签名中的注释,并使其可用于 Scala 反射和 其他工具,注解需要继承自[[scala.annotation.StaticAnnotation]]。 Scala 中定义的注解类不以与 Java 兼容的方式存储在类文件中 因此在 Java 反射中不可见。 为了实现这一点,注释必须 用Java编写。
abstract class Annotation
https://github.com/scala/scala/blob/2.13.x/src/library/scala/annotation/Annotation.scala
静态注释的基类。这些可用于 Scala 类型检查器或 Scala 反射,甚至跨不同的编译 单位。 Scala 中定义的注解类不存储在 类文件以与 Java 兼容的方式,因此在 Java 反射。 为了实现这一点,注释必须是 用Java写的。
trait StaticAnnotation extends Annotation
https://github.com/scala/scala/blob/2.13.x/src/library/scala/annotation/StaticAnnotation.scala
【讨论】: