• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

gabiandlizzy

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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
  • 注意:自定义注解必须配上注解的信息处理流程才有意义。

posted on 2022-04-06 22:38  大妖怪金角大王  阅读(129)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3