我看到的大多数关于自定义注解的文章都有关于如何创建和使用注解的明确示例,但它们大多提供了正在解决的微不足道的问题。除了JUnit中的executor模式之外,这些示例并没有让我了解如何应用自定义注解来简化代码。
我知道如何使用它们,但我有兴趣知道我应该考虑创建它们的任何场景。是否有通用的面向对象模式可以简化使用自定义注释的解决方案?
发布于 2014-04-15 11:33:11
当您想要通过反射向对象注入或从对象中提取某些内容时,可以使用它们。
除非您正在编写某种框架、客户端或可重用代码,否则通常不会这样做。
一个具体的例子就是我的annotations in the Riak Java client。
对于ORM (对象关系映射),我创建了一套完整的注释,允许用户注释他们自己的类,这样他们就可以简单地说“请将此存储在Riak中”,并传入他们自己的对象。注释允许对存储桶、密钥、内容类型、矢量时钟等进行注释,并使用反射提取该信息并构建适当的有线协议对象,然后将其发送给Riak。
它们还允许在从Riak获得响应时反序列化user对象;所有响应数据都被注入到用户的带注释的字段/方法中。
几乎任何具有某种ORM或注入机制的库都会提供注释供您使用。这就是它们被写出来的原因。正如您所提到的,JUnit是其中之一,但是像JSON解析器是另一个很好的例子(Gson,Jackson)。Spring就是一个很好的例子。
https://stackoverflow.com/questions/23074029
复制相似问题