亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Java注解基礎@inteface

標簽:
Java
概 念:

Java提供了一种原程序中的元素关联任何信息和任何元数据的途径和方法,它就是注解annotation。

注解分类
  • 按照运行机制

    a. 源码注解:注解只在源码中存在,编译成.class文件就不存在了。
    b. 编译时注解:注解在源码和.class文件中都存在,例如JDK自带的@Override@Deprecated@SuppressWarnings等。
    c. 运行时注解:在运行阶段起作用,甚至会影响运行逻辑的注解。

  • 按照来源

    来自JDK的注解
    来自第三方的注解
    自定义的注解

  • 元注解:注解的注解,定义注解时需要用到注解
自定义注解的语法要求
  1. 使用@interface关键字定义注解
  2. 成员以无参数无异常的方式声明
  3. 可用default为成员指定默认值
  4. 成员的类型为基本类型、String、Class、Annotation以及Enumeration
  5. 如果注解只有一个成员,约定取名为value(),使用时可忽略成员名和=
元注解
  • @target:取值为CONSTRUCTOR / FIELD / LOCAL_VARIABLE / METHOD / PACKAGE / PARAMETER / TYPE,表示自定义注解的作用范围

    CONSTRUCTOR:构造方法声明
    FIELD:字段生命
    LOCAL_VARIABLE:局部变量声明
    METHOD:方法声明
    PACKAGE:包声明
    PARAMTER:参数声明
    TYPE:类接口

  • @Retention:取值为SOURCE / CLASS / RUNTIME,表示自定义注解的存在阶段

    SOURCE:只在源码中显示,编译时会丢弃
    CLASS:编译时会记录到.class文件中,运行时忽略
    RUNTIME:运行时存在,可通过反射获取

  • @Inherited:表示允许子注解继承
  • @Documented:生成javadoc会包括注解信息

例子

@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Decription {

    String desc();

    String author();

    int age() default 18;

}
使用注解的语法
@<注解名>(<成员名2>=<成员值1>,<成员名2><成员值2>,...)

例子

@Description(desc="I am eyeColor",author="imooc boy",age=18)
public String eyeColor(){
        return "red";
}

Github:https://github.com/i2it,欢迎关注。

點擊查看更多內容
2人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消