package test; 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; import java.util.List; // Annotation @MyAnnotationType(version = 1.1, clients = { "Programs" }) class Main { public void method1() { } } public class Main1 extends Main { public static void main(String[] args) { Main1 m = new Main1(); m.method1(); } // Annotation provided by java // annotation tells the compiler to suppress specific warnings that it would otherwise generate. @SuppressWarnings({ "unchecked", "deprecation" }) // annotation informs the compiler that the element is meant to override an element declared in a superclass. @Override // annotation indicates that the marked element is deprecated and should no longer be used. @Deprecated public void method1() { List l; } } // The filename should be named same as public class or interface // meta annotation - annotation to annotation @Documented @Inherited // public enum ElementType { // TYPE, // Class, interface, or enum (but not annotation) // FIELD, // Field (including enumerated values) // METHOD, // Method (does not include constructors) // PARAMETER, // Method parameter // CONSTRUCTOR, // Constructor // LOCAL_VARIABLE, // Local variable or catch clause // ANNOTATION_TYPE, // Annotation Types (meta-annotations) // PACKAGE // Java package // } @Target({ ElementType.FIELD, ElementType.TYPE }) // public enum RetentionPolicy { // SOURCE, // Annotation is discarded by the compiler // CLASS, // Annotation is stored in the class file, but ignored by the VM // RUNTIME // Annotation is stored in the class file and read by the VM // } @Retention(RetentionPolicy.SOURCE) // simple annotation type @interface MyAnnotationType { public enum MyEnum { ONE, TWO, THREE }; //Annotation declaration should start with an 'at' sign like @, following with an interface keyword, following with the annotation name. //Method declarations should not have any parameters. //Method declarations should not have any throws clauses. //Return types of the method should be one of the following: primitives,String,Class,enum,array of the above types // string type String author() default "n/a"; // array type String[] clients() default { "Programs", "GUI", "TestJig" }; // enum MyEnum update() default MyEnum.ONE; // double type double version() default 1.0; }
http://docs.oracle.com/javase/tutorial/java/javaOO/annotations.html
http://www.developer.com/java/other/article.php/3556176/An-Introduction-to-Java-Annotations.htm
http://technicalmumbojumbo.wordpress.com/2008/01/13/java-custom-annotations/
http://www.ibm.com/developerworks/library/j-annotate2/index.html
No comments:
Post a Comment