JAVA之实例注解

2022-06-20  本文已影响0人  每天进步一点点变成更好的自己

@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:抑制编译器警告,该注释指示被该注释修饰的程序元素(以及该程序元素中的所有子元素)取消显示指定的编译器警告,且会一直作用于该程序元素的所有子元素。

注解的使用有以下三种:

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(); // 只定义一个抽象方法
}
上一篇 下一篇

猜你喜欢

热点阅读