注解
1.什么是注解
Annotation是从JDK5.0开始引入的概念
eg:@override 重写的注解
- 1.不是程序本身 给程序作出解释()
- 2.可以被其他程序读取
- 非必须
- 3.格式:@注释+注释名,还可以加一些参数值
- 4.有检查和约束的作用
- 可以放在方法或者类上面
2.内置注解
@override 指示方法声明旨在覆盖超类型中的方法声明。
@Deprecated 已过时 不推荐使用的代码
@SuppressWarnings 镇压警告(可以放入参数)
3.元注解
作用:负责注解其他注解
4个标准的meta-annotation类型:
- @Target 被描述的注解可以用在什么地方
@Target(value =ElementType.METHOD) 说明作用域在方法上
@Target(value ={ElementType.METHOD,ElementType.TYPE}) 说明作用域在方法和类上
- @Retention 表示需要在什么级别保存注释信息(一般都写RUNTIME)
表示我们的注释在什么地方还有效
@Retention(value =RetentionPolicy.RUNTIME)
- @Documented 是否我们的注解生成在JAVAdoc中
- @Inherited 表示子类能继承父类该注解
4.自定义注解
- 使用@interface自定义注解时,自动继承注解接口
- 写在注解里的参数格式:参数类型 + 参数名();
- default 设默认值
注解显示赋值,如果没有默认值,我们必须赋值
@interface MyAnnotion{
string name() default ""
int id() default -1 //一般负一代表不存在
}
@interface MyAnnotion2{
string value()
}
@MyAnnotion2("abc") //只有一个且名字是value时 这样 等价于 (value="'abc'")
public viod test(){
}