java注解的全面分析

网友投稿 241 2023-04-23


java注解的全面分析

全面解析java注解

Java中的常见注解

a.JDK中的注解

@Override 覆盖父类或者父接口的方法

    @Deprecated 表示方法已经过时

    @SuppressWarnings("deprecation") 忽略方法过时警告

b.常见的第三方注解

例如Spring中的@Autowired(自动注入)

注解的分类

a.按照运行机制分

1.源码注解

        注解只在源码中存在,编译成class文件就不存在了

   2.编译时注解

        注解在源码和class文件中都存在

        eg:@Override、@Deprecated、@SuppressWarnings

3.运行时注解

        在运行阶段还起作用,甚至会影响运行逻辑

        eg:@Autowired

b.按照来源分

1.来自JDK的注解

    2.来自第三方的注解

    3.自定义注解

c.元注解:注解的注解

自定义注解

1.自定义注解的语法要求

import java.lang.annotation.Documented;

import java.lang.annotation.ElementType;

import java.lang.annotation.Inherited;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;

@Target({ElementType.METHOD,ElementType.TYPE})

@Retention(RetentionPolicy.RUNTIME)

@Inherited

@Documented

public @interface Description {

String desc();

String author();

int age() default 18;

}

注意:

使用@interface关键字定义注解

成员以无参无异常方式声明

可以用default为成员指定一个默认值

成员类型是受限的,合法的类型包括原始类型以及String、Class、Annotation、Enumeration

如果注解只有一个成员,则成员名必须取名为value(),在使用时可以忽略成员名和赋值号(=)

注解类可以没有成员,没有成员的注解称为标识注解

2.元注解

a.@Target({ElementType.METHOD,ElementType.TYPE})

注解的作用域:

ElementType.CONSTRUCTOR 构造方法声明

ElementType.FIELD 字段声明

ElementType.LOCAL_VARIABLE 局部变量声明

ElementType.METHOD 方法声明

ElementType.PACKAGE 包声明

ElementType.PARAMETER 参数声明

ElementType.TYPE 类、接口

b.@Retention(RetentionPolicy.RUNTIME)

注解的生命周期:

RetentionPolicy.SOURCE 只在源码显示,编译时会丢弃

RetentionPolicy.CLASS 编译时会记录到class中,运行时忽http://略

RetentionPolicy.RUNTIME 运行时存在,可以通过反射读取

c.@Inherited

标识性的元注解:允许子类继承

d.@Documented

生成javadoc时会包含注解

使用自定义注解

语法:@注解名(成员1=成员值1,成员2=成员值2)

@Description(desc="I am demo",author="boy",age=18)

public void demo(){}

解析注解

概念:通过反射获取类、函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑

以上就是java 注解的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解Angular2表单
下一篇:vue修改vue项目运行端口号的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~