如何在avro idl文件中为@javaAnnotation提供参数?

问题描述 投票:1回答:1

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

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

但我真的没有看到任何允许我传递参数的语法。这是添加此功能https://issues.apache.org/jira/browse/AVRO-1186的票据以供参考。

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

我可以提供一些见解,非常感谢。

java annotations code-generation avro
1个回答
1
投票

您可以按原样编写注释,转义双引号:

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

Avro编译器不会删除注释名称。

© www.soinside.com 2019 - 2024. All rights reserved.