1.定义
1.1 注释与注解(注解也叫元数据)
程序中的注释是给程序员看的,如://这是一条注释;
程序中的注解是给计算机看的,用于说明程序,如@override,@param等
2.用途
- 编写文档:通过代码中标识的元数据生成文档,如doc文档
- 代码分析:通过代码中标识的元数据对代码进行分析,如使用反射
- 编译检查:通过代码中标识的元数据对代码进行编译检查,如@override
2.1 编写文档
2.1.1 编写源代码并添加注解(/**自动补全,注意是两颗星)
package com.zhanglei.annotation;
/**
* 注解javadoc演示
* @since 1.5
* @author zhanglei
*/
public class AnnotationTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
/**
* 计算两数之和
* @param a 整数
* @param b 整数
* @return 两数之和
*/
public int add(int a,int b) {
return a+b;
}
}
2.1.2 javadoc ***.java 生成文档
After javadoc:
2.1.3 打开index.html文件
3.注解类型
3.1 jdk中预定义注解
- Override:检测被该注解标注的方法是否继承自父类或接口
- deprecated:被该注解标注的内容即将过时,即该内容仍能使用,只是不建议用
- SuppressWarnings:压制IDE的警告:@SuppressWarnings(“all”)
package com.zhanglei.annotation;
/**
* 注解javadoc演示
* @since 1.5
* @author zhanglei
*/
@SuppressWarnings("all")
public class AnnotationTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
AnnotationTest a=new AnnotationTest();
System.out.println(a);
a.show1();
a.show2();
}
//我不添加override注解,效果还是一样的。个人认为其作用是检测错误的名称
@Override
public String toString() {
return "nihao";
}
@Deprecated
public void show1() {
System.out.println("我是过时的方法!");
}
public void show2() {
System.out.println("我是show1的替代者show2!");
}
}
输出结果:
nihao
我是过时的方法!
我是show1的替代者show2!
3.2 自定义注解
格式:
1.元注解
2.public @interface 注解名{}
本质:
注解本质是一个接口,继承自Annotation接口
属性:
接口中的抽象方法
其返回值类型要求:
String;基本类型;枚举;注解;以上类型的数组;
3.3 使用(解析)注解
看不下去了!!