ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

我爱java系列---【自定义注解】

2020-04-01 23:58:53  阅读:151  来源: 互联网

标签:java String 自定义 value 注解 默认值 public 属性


一、注解概述

1.定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、   接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素   进行说明,注释。 2.作用分类:   编写文档:通过代码里标识的注解生成文档【例如,生成文档doc文档】   代码分析:通过代码里标识的注解对代码进行分析【例如,注解的反射】   编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查【例如,Override】 3.常见注解   1. @author:用来标识作者名   2. @version:用于标识对象的版本号,适用范围:文件、类、方法。   3. @Override :用来修饰方法声明,告诉编译器该方法是重写父类中的方法,如果父类不存在该方法,则编译失败。 4.自定义注解
/*
    自定义注解
        1.格式
            public @interface 注解名称 {
                属性集
            }
        2.分类
            (1)空注解: 没有属性集
 */
public @interface MyAnno01 {
}
/*
    自定义注解
        1.格式
            public @interface 注解名称 {
                属性集
            }
        2.分类
            (2)有属性集的注解
                属性的定义格式:
                数据类型 属性名称();    //没有默认值
                数据类型 属性名称() default 默认值;    //有默认值,default后面的内容
            (3)属性的类型都有哪些?
                8种基本类型,String,枚举(不用),Class类型,注解类型
                以及以上任意类型的一维数组   int[]
 */
public @interface MyAnno02 {
    String name();
    int age() default 18;
    String[] hobbies();//爱好
    MyAnno01 anno();//注解类型
}
/*
    3.自定义注解使用的注意事项
        1.空注解可以直接使用
        2.一个注解只能在一个位置上使用一次,一个位置上可以使用多个不同的注解
        3.如果注解有属性 ,那么必须给属性赋值才能使用  键值对的方式赋值 属性名=属性值 多个属性,隔开
          如果属性是数组类型 并且只有一个属性值 那么{}可以省略 如果多个属性值 {}不能省略
        4.如果属性没有默认值 必须赋值 如果有默认值 可以不赋值
        5.如果一个注解中 只有一个属性 并且这个属性叫value 那么赋值时可以省略属性名      尤其要注意的--------------
 */
public class Demo07AnnotationNotice {
    @MyAnno01
    //@MyAnno01 //同一个位置,只能使用一次
    @MyAnno02(name = "少年攻城狮",hobbies = "学习java",anno = @MyAnno01)
    @MyAnno03("少年")
    @MyAnno04
    public void method() {

    }
}
/*
    5.如果一个注解中 只有一个属性 并且这个属性叫value 那么赋值时可以省略属性名      尤其要注意的--------------
 */
public @interface MyAnno03 {
    String value();//没有默认值
}
public @interface MyAnno04 {
    String value() default "少年攻城狮";//有默认值
}

自定义注解实例:

/*
    定义一个注解:Book
        - 包含属性:String value()   书名
        - 包含属性:double price()  价格,默认值为 100
        - 包含属性:String[] authors() 多位作者
 */
public @interface Book {
    String value();
    double price() default 100;
    String[] authors();
}

自定义注解的使用示范:

/*
    自定义Book注解并使用案例

        定义一个注解:Book
        - 包含属性:String value()   书名
        - 包含属性:double price()  价格,默认值为 100
        - 包含属性:String[] authors() 多位作者
 */
@Book(value="我爱java系列",price = 1000,authors = {"少年","少女"})
public class Demo08AnnotationBook {
    @Book(value = "少年启示录",authors = "伟哥")
    public void method() {

    }
}

 

标签:java,String,自定义,value,注解,默认值,public,属性
来源: https://www.cnblogs.com/hujunwei/p/12616890.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有