当前位置: 代码迷 >> java >> 如何为avro idl文件上的@javaAnnotation提供参数?
  详细解决方案

如何为avro idl文件上的@javaAnnotation提供参数?

热度:96   发布时间:2023-07-31 11:24:45.0

我正在尝试向我的 avro idl 文件(avdl 文件)添加一个 java 注释。 而且我似乎无法弄清楚如何为注释提供参数。 这是一个简化的例子

protocol Message {
    record Message {
        int @javaAnnotation("java.lang.SuppressWarnings") myInt = 0;
    }
}

当我尝试编译它时,我得到

error: annotation @SuppressWarnings is missing a default value for the element 'value'
@java.lang.SuppressWarnings
  ^
1 error

但我真的没有看到任何允许我传递参数的语法。 这是添加此功能的票证以供参考。

我正在使用 avro 版本1.8.2并使用 gradle-avro 插件版本0.12.0

我任何人都可以提供一些见解,将不胜感激。

您可以按照其显示的方式编写注释,避开双引号:

protocol Message {
    record Message {
        int @javaAnnotation("java.lang.SuppressWarnings(\"unused\")") myInt = 0;
    }
}

Avro 编译器不会剥离注释名称。