Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Java annotation
From Wikipedia, the free encyclopedia
Main page
This article is written like a manual or guidebook. Please
Contents
help rewrite this article from a neutral point of view. (June 2009)
Featured content
Current events This article needs references that appear in reliable
Random article third-party publications. Primary sources or sources affiliated
Donate with the subject are generally not sufficient for a Wikipedia article.
Interaction Please add more appropriate citations from reliable sources. (June
2009)
About Wikipedia
Community portal An annotation, in the Java computer programming language, is a special form of syntactic
Recent changes metadata that can be added to Java source code.[1] Classes, methods, variables, parameters and
Contact Wikipedia packages may be annotated. Unlike Javadoc tags, Java annotations can be reflective in that they can
Help be embedded in class files generated by the compiler and may be retained by the Java VM to be
Toolbox made retrievable at run-time.[2]
Annotations themselves may be annotated to indicate where and when they can be used:
The compiler reserves a set of special annotations (including @Deprecated, @Override and
@SuppressWarnings) for syntactic purposes.
Annotations are often used by frameworks as a way of conveniently applying behaviours to user-
defined classes and methods that must otherwise be declared in some external source (such as an
XML configuration file) or programmatically (with API calls). The following, for example, is an
annotated EJB 3.0 data class:
package com.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD,
ElementType.CONSTRUCTOR,ElementType.ANNOTATION_TYPE,
ElementType.PACKAGE,ElementType.FIELD,ElementType.LOCAL_VARIABLE})
@Inherited
package com.annotation;
package com.validators;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
import com.annotation.UnderConstruction;
import com.annotation.Unfinished;
import com.annotation.Unfinished.Priority;
import com.util.Util;
@UnderConstruction(owner="Prabir Karmakar")
public class DateValidator implements Validator{
if(!Util.validateAGivenDate(date))
{
@Unfinished(changedBy = "prabirk"
,value="whether to add message to
context or not, confirm"
,priority=Priority.HIGH
)
FacesMessage message = new FacesMessage();
message.setSeverity(FacesMessage.SEVERITY_ERROR);
message.setSummary(errorLabel);
message.setDetail(errorLabel);
throw new ValidatorException(message);
}
}
}
The annotations are not method calls and will not, by themselves, do anything. Rather, the class
object is passed to the EJB implementation at run-time, which then extracts the annotations to
generate an ORM.
Processing [edit]
When Java source code is compiled, annotations can be processed by compiler plug-ins called
annotation processors. Processors can produce informational messages or create additional Java
source files or resources, which in turn may be compiled and processed, but annotation processors
cannot modify the annotated code itself. The Java compiler conditionally stores annotation metadata
in the class files if the annotation has a RetentionPolicy of CLASS or RUNTIME. Later, the JVM or
other programs can look for the metadata to determine how to interact with the program elements or
change their behavior.
History [edit]
The Java platform has had various ad-hoc annotation mechanisms—for example, the transient
modifier, or the @deprecated javadoc tag. The general purpose annotation (also known as metadata)
facility was introduced to the Java Community Process as JSR-175 in 2002 and approved in
September 2004. [3] Annotations became available in the language itself beginning with version 1.5 of
the JDK. A provisional interface for compile-time annotation processing was provided by the apt tool
in JDK version 1.5, and was formalized through JSR-269 and integrated into the javac compiler in
version 1.6.
Java programming
Model-driven architecture
Java virtual machine
.NET Attributes
References [edit]
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. See Terms of
Use for details.
Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.
Contact us