注解
注解是一个接口,程序通过反射机制获得指定程序元素的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)
@Documented
public @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的子类。
@Inherited
public @interface Greeting{
public enum FontColor{BULE, RED, GREEN};
String name();
}
自定义注解
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FruitName{
String value() default "";
}
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @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
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。