我可以在HashMap中使用注释作为键吗



例如,我有一个通过反射获得的字段。这个字段上有注释。我使用

field.getAnnotation(CustomAnnotation.class)

得到一个。我可以将它用作哈希图中的密钥吗?我当然可以,但这把钥匙对球场来说是独一无二的吗?


我想要HashMap<CustomAnnotation, Integer>,其中Integer值是CustomAnnotation具有的集合中最后使用的元素的索引:

@CustomAnnotation(values={"ONE", "TWO"})

您可以使用Annotation实例作为HashMap键。接口准确地定义了equals和hashCode的工作方式。本质上他们是平等的。。。

如果指定的对象表示一个在逻辑上等同于此对象的注释。

然而,我不确定这是否是你想要的。

特别是,如果在两个不同的字段上具有相同的@CustomAnnotation(x=123),则其中只有一个字段可以进入映射。

你不想在字段上键入并取回注释吗?

FWIW、Field(以及Class和Method(都可以用作键,具有"良好的语义"(如果引用同一对象,则被认为是相等的(。

相关内容

  • 没有找到相关文章

最新更新