全面解析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; }
注意:
2.元注解
a.@Target({ElementType.METHOD,ElementType.TYPE})
注解的作用域:
b.@Retention(RetentionPolicy.RUNTIME)
注解的生命周期:
c.@Inherited
标识性的元注解:允许子类继承
d.@Documented
生成javadoc时会包含注解
使用自定义注解
语法:@注解名(成员1=成员值1,成员2=成员值2)
@Description(desc="I am demo",author="boy",age=18) public void demo(){}
解析注解
概念:通过反射获取类、函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑
以上就是java 注解的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#cainiaojc.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。