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

Java高级--注解(Annotation)

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

Java高级--注解(Annotation)

注释和注解:

注释:Java不会编译注释的内容,注释是给程序员看的;

注解:注解是给程序看的,当程序看到这个注解时,解析这个注解。

注解的分类

1、预定义注解

2、自定义注解

3、元注解

(1)预定义注解

预定义注解就是jdk自带的一些注解,该注解被jvm解析

1. @Override: 重写的注解。符合重写得规则。
2. @Deprecated: 表示已过时。
3. @SuppressWarnings: 表示压制警告。
4. @FunctionInterface: 表示函数式接口。表示该接口中有且仅有一个抽象方法。

(2)元注解

定义在注解上的注解称为元注解

1. @Target(value=可以取下面这些内容): 作用限制注解使用得位置。
   
    TYPE,

   
    FIELD,

   
    METHOD,

   
    PARAMETER,

   
    CONSTRUCTOR,

   
    LOCAL_VARIABLE

2. @Retention:  注解什么时候生效。默认时源码 java经历了那些阶段。
      源码阶段-->字节码阶段--->运行阶段
     
    SOURCE,

   
    CLASS,

   
    RUNTIME
    
3. @Documented 当生成API文档时该注解还存在。

4. @Inherited 是否运行被子类继承。

(3)自定义注解--初级

public @interface 注解名{
   //注解属性
}

使用自定义注解:在类,属性,方法上加上@注解名

使用注解和不使用注解没有区别,注解本身没有意义,只有在注解被解析了才会赋予真正的意义。

之后会使用反射来对注解进行解析。

(4)自定义注解--高级

@interface 注解名{
     数据类型 属性名() default 默认值;
}

其中的数据类型必须为基本类型,字符串类型,枚举类型【常量】,注解类型,数组类型【必须是上面这些类型的数组】

//只能在类上使用
@Target(value = ElementType.TYPE)
//在运行时有效
@Retention(value = RetentionPolicy.RUNTIME)
//生成api时有注解
@Documented
public @interface Custom {
    String[] name() default "dumpling";
    String[] value();
}


@Custom(value = {"自己定义的","有我的名字"})
public class Myself {
    //报错
    //@Custom()
    public void testMethod(){}
}

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016620.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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