java @Deprecated注解详解

KLQ 2020-08-18 09:52:25 java常见问答 9010

下面要给大家介绍到的就是java @Deprecated注解,对于java @Deprecated注解你了解吗?不清楚的小伙伴可以一起通过下面的文章来学习一下。

java当中@Deprecated能够用来注解类、接口、成员方法和成员变量等,用于表示某个元素(类、方法等)已过时,在其他程序使用已过时的元素时,编译器将会给出警告。

使用@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 + "]";
    }
}

在上面的代码当中,第2行类Person、第4行的成员变量name和第24行的setNameAndAge方法都被@Deprecated注解,在Eclipse当中,这些被注解的API都会被画上删除线,调用这些 API代码也会有删除线,示例代码:

public class HelloWorld {
public static void main(String[] args) {
Person p = new Person();
p.setNameAndAge("C语言中文网", 20);
p.name = "Java教程";
}
}

在Eclipse当中代码显示:

代码显示

从上可以看出,代码当中不仅有删除线还有编译警告。

Java 9为@Deprecated注解增加了(1)since:该String类型的属性指定该API从哪个版本被标记为过时;(2)forRemoval:该boolean类型的属性指定该API在将来是否会被删除这两个属性。

示例代码:

在上面的程序当中第12行代码使用了Test的print()方法,而Test类中定义info()方法时使用了 @Deprecated修饰,表示,该方法已过时,所以将会引起编译器警告。

@Deprecated的作用和文档注释中的@deprecated标记的作用基本上是一样的,可是,它们的用法存在着差别,前者是Java 5才支持的注解,不需要放在文档注释语法(/** ... */部分)中,而是直接用于修饰程序中的程序单元,如方法、类和接口等。

以上就是对于java @Deprecated注解的简单介绍了,你都清楚了吗?更多java入门内容,请继续通过本站来进行了解。

推荐阅读:

java注解(Annotation)概念和作用介绍

java @Override注解详解