2012-05-07 20 views
11

Recientemente leí un artículo sobre las anotaciones de Java, y en este último viene el @Generated uno. Dicen que se usa para generar código automáticamente.@Generated Annotation, ¿cómo lo usamos?

¿Podría alguien explicarme eso con un pequeño ejemplo?

Todo lo que encontré en la red fue alguna pregunta profesional o algo más de lo que estaba buscando.

Gracias.

+0

Es difícil de responder. ¿Cuál es realmente tu pregunta? ¿Cómo usar @Generated o cómo usar la anotación en Java? –

+0

El primero, Cómo usar el @Generated en Java –

Respuesta

8

Como por el JavaDoc:

se utiliza el annoation generada para marcar el código fuente que se ha generado. También se puede usar para diferenciar el código escrito del usuario del código generado en un solo archivo.

+0

¿Eso significa que si construimos clases de nuestro proyecto (por ejemplo) luego anotamos un classeby @Generated, la JVM generará los archivos .class excepto el que tiene la anotación o estoy completamente fuera del alcance:/ –

+0

Eso es más para IDEs versus código escrito manualmente. – Seshagiri

+1

Por favor, vaya a este enlace http://www.javabeat.net/2007/06/introduction-to-java-6-0-new-features-part-i/ – Seshagiri

0

Fox son buenas y malas políticas en el límite entre código generado y código escrito. La forma de pensar es (creo) diferente en los lenguajes compilados (estáticos), nad interpreted/dynamic.

Lo peor es modificar el código generado (se perderá en la próxima generación, o luego se prohíbe la generación siguiente) Normalmente se acepta derivar clase (manual) de generada, o generar clase que amplía la clase "manual" del núcleo. Si alguien conoce buenas políticas en esta área, por favor comente.

0

Este es uno de esos casos en los que "si no está seguro de que va a necesitarlo, no lo necesita" se aplica. @Generated es utilizado por metaprogramas como Auto/Value que generan código fuente para que no tenga que escribirlo manualmente. Si está escribiendo un archivo .java a mano (que normalmente es lo que hace), no use @Generated.