首页 > 解决方案 > 禁止类保留注释中使用的枚举的“未知枚举常量”警告

问题描述

当我编译具有特定外部 jar 依赖项的项目时,javac 会产生以下警告:

warning: unknown enum constant ReferenceCardinality.MANDATORY

这是因为外部 jar 依赖项在其参数中使用带有枚举的类保留注释。类似这样的东西:

import org.osgi.service.component.annotations.Reference;
import org.osgi.service.component.annotations.ReferenceCardinality;
public class ExternalJarClass {
    @Reference(cardinality = ReferenceCardinality.MANDATORY)
    public void someMethod(...) {}
}

我找到了两种删除此警告的方法:

  1. 包括命令行选项-nowarn。但是,我不想在编译我的项目时禁用所有警告。
  2. 在类路径中包含注释库 jar。

我可以接受选项 2,但由于我的项目不需要注释库,我想知道是否有任何其他方法可以抑制此警告。

标签: javaannotationsjavac

解决方案


推荐阅读