@Override注解:用来指定方法重写的,只能修饰且只能用于方法重写。
@Deprecated 注解: 可以用来注解类、接口、成员方法、成员变量等,用于表示某个元素(类、方法等)已过时。
@SupperessWarnings:抑制编译器警告,该注释指示被该注释修饰的程序元素(以及该程序元素中的所有子元素)取消显示指定的编译器警告,且会一直作用于该程序元素的所有子元素。
@SafeVarargs注解:适用于static或final声明的方法,对于未声明为static或final的方法,如果要抑制unchecked警告,可以使用@SuperessWarnings注解。
@Functionallntterface注解:用来指定某个接口必须是函数式接口,所以@FunInterface只能修饰接口,不能修饰其他程序元素。
1、 @Override注解
@Override注解是用来指定方法重写的,只能修饰且只能用于方法重写。
它可以强制一个子类必须重写父类方法或实现接口的方法。
public class Person {
private String name = "";
private int age;
...
@Override --写了该方法,会进行编译器检查方法,保证父类要包含一个被该方法重写的方法 ,否则会编译报错(t0String)
public String t0String() { //toString()
return "Person [name=" + name + ", age=" + age + "]";
}
}
2、@Deprecated 注解
@Deprecated 注解 可以用来注解类、接口、成员方法、成员变量等,用于表示某个元素(类、方法等)已过时。
class Test {
-- since属性指定从哪个版本开始被标记成过时,forRemoval指定该API将来会被删除
@Deprecated(since = "9", forRemoval = true)
public void print() {
System.out.println("这里是C语言中文网Java教程!");
}
}
public class DeprecatedTest {
public static void main(String[] args) {
--下面使用info()方法时将会被编译器警告
new Test().print();
}
}
3、@SupperessWarnings:抑制编译器警告
SuperessWarnings:抑制编译器警告,该注释指示被该注释修饰的程序元素(以及该程序元素中的所有子元素)取消显示指定的编译器警告,且会一直作用于该程序元素的所有子元素。
注解的使用有以下三种:
- 1.抑制单类型的警告:@SuperessWarnings("unchecked")
- 2.抑制多类型的警告:@SuperessWarnings("unchecked","rawtypes")
- 3.抑制所有类型的警告:@SuperessWarnings("unchecked")
4、@SafeVarargs注解
@SafeVarargs注解适用于static或final声明的方法,对于未声明为static或final的方法,如果要抑制unchecked警告,可以使用@SuperessWarnings注解。
public class HelloWorld {
public static void main(String[] args) {
// 传递可变参数,参数是泛型集合
display(10, 20, 30);
// 传递可变参数,参数是非泛型集合
display("10", 20, 30); // 没有@SafeVarargs会有编译警告
}
@SafeVarargs
public static <T> void display(T... array) {
for (T arg : array) {
System.out.println(arg.getClass().getName() + ":" + arg);
}
}
}
5、@Functionallntterface注解
@Functionallntterface注解 就是用来指定某个接口必须是函数式接口,所以@FunInterface只能修饰接口,不能修饰其他程序元素。
函数式接口:如果接口中只有一个抽象方法(可以包含多个默认方法或多个static方法)
@FunctionalInterface
public interface FunInterface {
static void print() {
System.out.println("C语言中文网");
}
default void show() {
System.out.println("我正在学习C语言中文网Java教程");
}
--如果多定义了一个抽象方法,系统就会报错
void test(); // 只定义一个抽象方法
}
网友评论