栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java之注解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java之注解

注解

注解就是对一段程序进行标注和解释的

举例:

注解名说明
@Override描述子类重写父类方法
@Deprecated描述方法过时
@SuppressWarnings压制警告

注解和注释的区别:

注解注释
给编译器看的(代表了程序的一些特殊功能)给程序员看的
如何自定义注解? 格式
public @interface 注解名称{
    public 属性类型 属性名() default 默认值;
}

举例:

public @interface Anno1{
    public int a() default 10;
}

注:属性类型包括:基本数据类型、String、Class、注解、枚举、以上类型的一维数组。

package com.test4.test40;



public @interface AnnoTest {

    

    //基本数据类型
    int a() default 10;//public可以省略不写 默认就是public

    //String
    public String name();

    //Class
    public Class clazz() default AnnoTest02.class;

    //注解
    public AnnoTest02 anno() default @AnnoTest02;

    //枚举
    public Season season() default Season.AUTUMN;

    //以上类型的一维数组 基本数据类型
    public int[] arr() default {1, 2, 3, 4, 5};

    //枚举数组
    public Season[] seasons() default {Season.AUTUMN, Season.SUMMER};

}

使用自定义注解:

package com.test4.test40;


@AnnoTest(name = "xxx")
public class AnnoDemo {

}

注:如果在定义注解的过程中,属性没有给定指定默认值,那么在使用时就需要手动给出注解属性的设置值

特殊属性value:

自定义注解:

package com.test4.test40;

public @interface AnnoTest02 {
    public String value();
}

使用注解:

package com.test4.test40;


@AnnoTest02("默认给value属性赋值")
public class AnnoDemo02 {

}
元注解:

元注解是用来描述注解的注解。

常见元注解:
元注解名说明
@Target指定了注解能在哪里使用
@Retention可以理解为注解的生命周期,默认只存在java源码阶段,编译为字节码问价就会消失
@Inherited表示修饰的自定义注解可以被子类继承
@documented表示该自定义注解,会出现在API文档里面

举例说明:

import java.lang.annotation.*;

@Target({ElementType.TYPE,//可以使用在类上
        ElementType.FIELD,//可以使用在成员变量上
        ElementType.METHOD//可以使用在方法上
})
@Retention(RetentionPolicy.RUNTIME)//指定注解的存活时间,不写默认只存活于源码阶段
@Inherited//指定该注解可以被继承
public @interface AnnoTest02 {
    public String value();
}
完整的自定义注解:
@Target({ElementType.TYPE,ElementType.FIELD,ElementType.METHOD})//标明这个注解可以用在哪儿
@Retention(RetentionPolicy.RUNTIME)//指定注解的存活时间
@Inherited//指定该注解可以被继承
public @interface AnnoTest03 {
    public String value();
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/631947.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号