2012-04-28 14 views
11

Recientemente leí las anotaciones de JCIP y parecen interesantes. Fui al sitio web y eché un vistazo a la fuente. El único problema es que el jar de src solo contiene las anotaciones ... No veo dónde puedo encontrar los procesadores de anotación que en realidad hacen ¡cualquier cosa! ¿Acabo de buscar en el lugar equivocado o no se trata de anotaciones de Java reales (es decir, no hay forma de aplicar @Immutable cuando se utiliza para marcar una clase)?Cómo codificar con JCIP (Concurrencia de Java en la práctica)

  • @Immutable
  • @GuardedBy
+0

Por favor, edite su pregunta y explicar qué es JCIP. Supongo que te refieres a Java Concurrency in Practice, pero debería ampliarse. Y no estoy familiarizado con las anotaciones a las que se refiere. – Gray

+0

Lo siento por la vaguedad allí! – IAmYourFaja

Respuesta

10

FindBugs apoya esas anotaciones. El soporte para esas anotaciones y otras se describe en this documentation page.

+0

Entonces las anotaciones de JCIP: ¿cuál es el punto de ellas? ¿Son solo anotaciones "vacías" utilizadas en los ejemplos de JCIP para ayudar a los lectores a seguirlas o existe algún tipo de alianza entre JCIP y FindBugs? – IAmYourFaja

+3

Las anotaciones en general son solo eso: anotaciones. Anotan su fuente y/o código de bytes. Todas las anotaciones (a menos que se utilicen exclusivamente para fines de documentación) deben ser manejadas por alguna herramienta. En el caso de las anotaciones de JCIP, FindBugs es una herramienta de este tipo. Si anota alguna clase como inmutable, y la clase de hecho no es inmutable, FindBugs generará una advertencia al inspeccionar esta clase. Las anotaciones JCIP tienen dos propósitos: documentan el diseño del código, y pueden ser usadas por FindBugs y otras herramientas para verificar que se respete el diseño deseado. –

1

Las anotaciones JCIP son una forma formal de documentar un contrato de simultaneidad, como este miembro es "@GuardedBy" en este campo.

No hacen nada funcionalmente en su código.

4

El IntelliJ IDE utilizará estas anotaciones para buscar errores en su código. Si anota una variable es @GuardedBy (some_lock), el IDE marcará los casos en los que acceda sin sincronizar correctamente. Esto es muy útil

Cuestiones relacionadas