@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Conversion {
String saveColumn();
String saveProperties();
String byTable();
String showColumn();
String showProperties();
SQLInfo saveSql() default @SQLInfo(sql = "", param ={} );
boolean saveFlag() default false;
}
@Target(ElementType.FIELD)[注解能够放置的位置] Type\Method\FIELD 类\方法\属性 @Retention(RetentionPolicy.RUNTIME)[有效作用范围] SOURCE\CLASS\RUNTIME 编译时期\类文件\运行时期 SOURCE<CLASS<RUNTIME 通常使用Runtime 还有一些注解,不是必要的: @Documented[javaDoc标识] @Inherited[是否能够被继承,只有作用在类上时,会被子类继承此自定义的注解]
注解的属性:类型 名称() 。e.g: String saveColumn()
注解属性没设置默认值时,使用注解必须填写参数,否则编译不通过,提示以下信息。
注解属性设置默认值:类型 名称() default 当前类型值。 e.g: boolean saveFlag() default false;
稍稍微复杂点的:
注解类型:SQLInfo saveSql() default @SQLInfo(sql = "", param ={} );
枚举类型:CodePrefix codePrefix() default CodePrefix.WXSQ;
注意点:
注解其实是实现了 Annotation接口