long expire() default 1*60*1000是什么意思?
今天,看到这样一个写法:
long expire() default 1* 60*1000;
String name() default "";
大惑不解,这是什么鬼东西?
后来才发现,这是自定义注解特有的写法。这两行代码的上下文是:
import java.lang.annotation.*;
/**
* @Date: 2022/4/6 9:21 PM
*/
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Cache {
long expire() default 1 * 60 * 1000;/** 过期时间 */
String name() default ""; /**
}
自定义注解的知识点
- Annotation 的成员变量在 Annotation 定义中以无参数方法的形式来声明。其方法名和返回值定义了该成员的名字和类型。我们称为配置参数。类型只能 是八种基本数据类型、String类型、Class类型、enum类型、Annotation类型、 以上所有类型的数组。
- 可以在定义 Annotation 的成员变量时为其指定初始值, 指定成员变量的初始 值可使用default关键字
- 如果只有一个参数成员,建议使用参数名为value
- 如果定义的注解含有配置参数,那么使用时必须指定参数值,除非它有默认 值。格式是“参数名 = 参数值”,如果只有一个参数成员,且名称为value, 可以省略“value=”
- 没有成员定义的 Annotation 称为标记; 包含成员变量的 Annotation 称为元数 据 Annotation
- 注意:自定义注解必须配上注解的信息处理流程才有意义。
浙公网安备 33010602011771号