我正在研究一个Java库,我希望能够在几个不同的Java编译器版本中使用它。某些注释(特别是@SafeVarargs
)仅存在于某些编译器版本中,并在其他版本中生成错误。
特别是像@SafeVarargs
这样的东西,它主要用作抑制警告而不是实际更改编译器输出的标记,我希望能够使用这些注释并简单地提供一个虚拟实现,如果早期的编译器缺少它们。
我将如何做到这一点?
答案 0 :(得分:1)
我想你可以创建这些注释的代理实现并将它们放在一个添加到类路径中的Jar中,确保系统/编译器在由相应的类加载器解析时提供一个优先级。
例如,您只需从here
复制SafeVarargs的代码即可