注解
注解是一个接口,程序通过反射机制获得指定程序元素的Annotion对象。通过这个对象来获取注解里的元数据。
元数据
mysql中有元数据的概念,是对数据的数据的一种描述
例如mysql中的元数据可以获得数据库服务器当前的状态,服务器的版本号。元注解
负责注解其他注解
栗子@Retention(RetetionPolicy.RUNTIME)@Target(ElementType.TYPE)public @interface MyAnnotation{ public String name(); public String value();}
解释;在interface前加@表明这是一个注解,该注解可以使用到其他地方
再定义两个指示,其中@Retetion 表明注解会保留到运行期间,在编译的时候,不会去掉@Target表明只能用在类和接口上面@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Column{ // 其中default代表是默认的,fieldName为默认的内容 public String name() default "fieldName"; public String setFuncName() default "getField"; public String getFuncName() default "getField"; public boolean defaultDBvalue() default false;}
@Documented在java生成文档的时候使用
@inherited
该注解某个被标注的类型是继承的,如果一个使用@inherited修饰的类型被用于一个class,则这个class是该class的子类。@Inheritedpublic @interface Greeting{ public enum FontColor{BULE, RED, GREEN}; String name();}
自定义注解
@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface FruitName{ String value() default "";}
@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface FruitColor{ public enum Color{BULE, RED, GREEN}; Color fruitColor() default Color.GREEN;}
public class Apple{ // 设置默认值为Apple @FruitName("Apple"); private String appleName; // 设置默认fruitColor的默认值为Color.RED @FruitColor(fruitColor = Color.RED) private String appleColor;}
www.iming.info