基本注解包括:@Override、@Deprecated、@SuppressWarnings、@SafeVarargs 和 @FunctionalInterface。
@Override注解
Java 中 @Override 注解是用来指定方法重写的,只能修饰方法并且只能用于方法重写,不能修饰其它的元素。它可以强制一个子类必须重写父类方法或者实现接口的方法。
使用 @Override 注解示例代码如下:
public class Person {
private String name = "";
private int age;
...
@Override
public String t0String() { //toString()
return "Person [name=" + name + ", age=" + age + "]";
}
}
@Deprecated注解
Java 中 @Deprecated 可以用来注解类、接口、成员方法和成员变量等,用于表示某个元素(类、方法等)已过时。当其他程序使用已过时的元素时,编译器将会给出警告。
@Deprecated
public class Person {
@Deprecated
protected String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Deprecated
public void setNameAndAge(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
@SuppressWarnings:抑制编译器警告
注解的使用有以下三种: 抑制单类型的警告:@SuppressWarnings("unchecked") 抑制多类型的警告:@SuppressWarnings("unchecked","rawtypes") 抑制所有类型的警告:@SuppressWarnings("unchecked")
使用 @SuppressWarnings 注解示例代码如下:
public class Demo07 {
@SuppressWarnings({"deprecation"})
public static void main(String[] args) {
Person p = new Person();
p.setNameAndAge("java", 20);
p.name = "Java教程";
}
}
@SafeVarargs注解
可用 @SafeVarargs 注解抑制编译器警告
注意:@SafeVarargs注解不适用于非 static 或非 final 声明的方法,对于未声明为 static 或 final 的方法,如果要抑制 unchecked 警告,可以使用 @SuppressWarnings 注解。
@FunctionalInterface注解
@FunctionalInterface 就是用来指定某个接口必须是函数式接口,所以 @FunInterface 只能修饰接口,不能修饰其它程序元素。
例如,如下程序使用 @FunctionalInterface 修饰了函数式接口。
@FunctionalInterface
public interface FunInterface {
static void print() {
System.out.println("C语言中文网");
}
default void show() {
System.out.println("我正在学习C语言中文网Java教程");
}
void test(); // 只定义一个抽象方法
}