【问题标题】:Is there a way to create custom annotations in Scala and write a custom annotation processor to verify the annotations?有没有办法在 Scala 中创建自定义注释并编写自定义注释处理器来验证注释?
【发布时间】:2020-02-14 23:45:07
【问题描述】:

我一直在学习注解以及注解处理器是什么。我正在查看 Java 示例,似乎有一种正确的方法可以做到这一点。但是,在 Scala 中,我没有合适的网站/文档来创建自定义注释和注释处理器。

如果在 Scala 中不可能,有没有办法在 Scala 类中使用 Java 自定义注解处理器?

有人能指出正确的方向吗?

【问题讨论】:

    标签: java scala annotations annotation-processor


    【解决方案1】:

    Scala 中有宏注解

    https://docs.scala-lang.org/overviews/macros/annotations.html

    我猜这类似于 Java 中的编译时处理注解。

    【讨论】:

    • 谢谢。但我想知道用 Java 编写一个注释处理器并在 Scala 上使用它。可以链接吗?
    • @user7937993 Java 中的注解处理由 javac 执行。 scalac 怎么能意识到这一点? Scalac 知道宏注释、宏和编译器插件。
    • 我能理解。我的问题基于基本概念。我不是在谈论宏。 Scala 支持用户定义的注解,它也支持 Java 类。所以我的想法是 1) Scala 如何检查注释?它有什么处理器? 2)由于scala支持Java类,有没有办法在scala中扩展AbstractProcessor并编写自定义注解处理器?
    【解决方案2】:

    在 Scala 中,有一个选项可以在黑盒(类型安全)宏中使用编译时注释,而无需添加编译器扩展或标志。

    Here 是定义和使用此类注释以派生编解码器的示例。

    【讨论】:

    • 谢谢。但我想知道用 Java 编写一个注释处理器并在 Scala 上使用它。可以链接吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多