本文共 1420 字,大约阅读时间需要 4 分钟。
很多人一看到注解就觉得很简单,里面无非就是单行注释,多行注释等内容!如果这样认为,请静下心来,其实这里面还有是一点技术,如果你想用注解提升自己的逼格,让自己更加专业一点!那么,搬个小板凳过来…… ->_-> ……
学习重点:自定义注解,利用自定义注解解决问题!
学习前提:掌握类中方法的反射 ,如不会请看反射(reflect)篇---
那么我们为什么要使用注解呢?
(1)为了可以读懂别人的代码,特别是框架型的spring,mybits等;
(2)让编程更加简洁,代码更加清晰
(3)让别人高看自己
注解的概念:Java中提供的一种 原程序中的元素 关联 任何信息和元数据动态途径和方法!
继承型 @Override
自定义使用@Deprecated该注解表示方法不适合所有对象;使用时需要声明一下才能使用;
忽略警告型的@SuppressWarnings(“Unchecked”)@Suppress Warnings(“Deprecated”);
例如:
Spring框架中的: @Autowired、 @Service、 @Repository
Mybatis框架中的: @InsertProvider、 @UpdateProvider 、@Options
此处省略介绍,如需要,转到框架中学习相关的东西;
按照运行机制分类:
(1)原码注解
(2)按照来源划分
元注解:给注解进行注释的注解
语法、元注解、自定义注解的使用、解析注解
语法格式:
@Target({ElementType.METHOD,ElementType.TYPE})//作用范围:包、类、字段、方法、方法参数、局部变量@Retention(RetentionPolicy.RUNTIME)//生命周期:原码SOURCE、编译CLASS、运行RUNTIME@Inherited@Documentedpublic @interface Description { String desc(); String author(); int age() default 18;//设置默认值为18;}
//如果注解只有一个成员,则成员名必须为value(),在使用时可以忽略成员名和赋值符号(=)。如下示例:@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME) public @interface Table {String value();}
注解类可以没有成员,但是没有成员的注解类称为标识注解;
注解方法不可以有参数,不可以有异常;
注解的使用:
语法:@<注解名>(<成员名1>=<成员值1>,<成员名1>=<成员值1>,……)
示例:
@Description(desc=”I am eyeColor”, author=”Ternece’ , age=18)public String age(){ return 26;}
下一篇:如何定义并使用自定义注解,提高程序的质量!