一、基本概念
系统建立了 3 个内建的 Annotation 类型,用户可以直接使用:
@Override
: 覆写的Annotation.
@Deprecated
: 不赞成使用的Annotation.
@SuppressW arnings
: 压制安全警告的Annotation.
这里的 3 个 Annotation 全部是在 java.lang
包中定义的。因为此包在使用时是自动导入的,所以可以直接使用以上 3 个 Annotation。
3 种内定的 Annotation:
二、@Override
@Override 主要是在方法覆写时使用,用于保证方法覆写的正确性
class Person{
public String getInfo(){
return "这是一个类";
}
}
class Student extends Person{ //子类继承父类
@Override //此处明确指出方法覆写操作
public String getInfo(){
return "这是一个 Student";
}
}
public class Test{
public static void main(String[] args) {
Person per = new Student();//通过子类实例化父类对象
System.out.println(per.getInfo());
}
}
此处在覆写的 getInfo()
方法前加上了 @Override
注释,目的主要是防止用户在覆写方法定义出错
同时 @Override
在使用时只能在方法上应用,而其他元素,如 类、属性等不能使用此 Annotation 的
二、@Deprecated
@Deprecated 注释的主要功能是用来声明一个不建议使用的方法,如果在程序中使用了此方法,则在编译时将出现警告信息
该方法除了可以在方法上声明外,还可以在类中也可以进行声明
@Deprecated
class Person{//声明不建议使用的类
@Deprecated //声明不建议使用的类
public String getInfo(){
return "这是一个 Person 类";
}
}
public class Test{
public static void main(String[] args) {
Person per = new Person();
System.out.println(per.getInfo());//编译时将出现警告信息
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
虽然有警告信息,但是程序可以正常执行,因为该注释表示方法不建议使用,但不是不能使用。
三、@SuppressWarnings
@SuppressWarnings
注释的功能主要用来压制警告
比如 泛型操作时 ,如果在一个类声明时没有指明泛型,则肯定在编译时产生,那么此时就可以用 @SuppressWarnings 压制这种警告。
class Person<T>{
private T var;//定义泛型变量
public T getVar() {
return var;
}
public void setVar(T var) {
this.var = var;
}
}
public class Test{
@SuppressWarnings("unchecked")//压制主方法的警告信息
public static void main(String[] args) {
Person per = new Person();
}
}
- 18
这里 @SuppressWarnings("unchecked")
注释的 uncharted,表示的是不检查,如果现在需要压制更多的警告信息,可以后面继续增加字符串,只是增加时,需要按照数组的格式增加:
@Deprecated//以下操作不建议使用
class Person<T>{
private T var;//定义泛型变量
public T getVar() {
return var;
}
public void setVar(T var) {
this.var = var;
}
}
public class Test{
@SuppressWarnings({"unchecked","depercation"})//压制两条警告信息
public static void main(String[] args) {
Person per = new Person();
per.setVar("Java");
}
}
- 18
- 19
- 20
这里同时存在了 泛型和不建议两种警告信息,但是由于使用了 @SuppressWarnings
注释,所以编译时不会出现任何警告信息。
@SuppressWarnings
中的关键字:
设置注释信息时,是以 key -> value 的形式出现的,所以 @SuppressWarnings
也可以直接使用 “value = {“unchecked”,“deprecation” }” 的方式设置:
public class Test{
@SuppressWarnings(value = {"unchecked","depercation"})//压制主方法的警告信息
public static void main(String[] args) {
Person per = new Person();
}
}
- 1
- 2
- 3
- 4
- 5
- 6