java 不建议使用注解,JDK新特性-----注解@ (@Override、@Deprecated、@SuppressWarings)

JDK新特性-----注解@ (@Override、@Deprecated、@SuppressWarings)

2018-12-07 15:19:36Java

注解—@Override 准确覆写

为什么会有@Override?

如果子类Student需要覆写父类Object的toString方法:

class Student

{

public String tostring() //希望覆写toString,但是并没有报错

{

return "学生好好学习";

}

}

public class Annotation

{

public static void main(String[] args)

{

Student s=new Student();

System.out.println(s); //CODE.Java新特性.Student@4554617c 输出的对象地址,并美有覆写成功

}

}

可以看出并没有覆写成功。

而 @Override 是 当子类覆写父类方法时,此注解检查覆写的方法是否正确声明,只有满足覆写方法要求才会编译通过,否则编译出错。

@Override作用:

当用了@Override 会检查覆写方法声明正确性:

86e327bbc78eb65828d9636033c7d909.png

覆写方法声明正确编译不会报错:

2612a9f1f225a142aafe45d66cedae28.png

注解----@Deprecated 过期声明

为什么要有@Deprecated?

一个很简单例子,qq从98年开发,到现在有很多版本,但是之前的版本依然可以使用,对于旧版本中的一些类新版本不会删掉,而是在新版本扩展的时候不再去使用这个不建议的类,所以加一个过期的注解(@Deprecated)。

@Deprecated

class Student

{

private String name;

@Deprecated

public Student() //声明该方法不建议使用,但是使用也不会报错

{}

public Student(String name)

{

this.name=name;

}

@Deprecated

public void print()

{

System.out.println(this.name);

}

}

public class Annotation

{

public static void main(String[] args)

{

Student s1=new Student(); //表示该构造方法不建议使用,但是使用也不会报错

s1.print(); //null

Student s2=new Student("pick");

s2.print(); //表示该方法不建议使用,使用也会实现原本功能

}

}

建议用户不使用原有的类或者方法时,可以在类或方法上@Deprecated表示在当前版本中不推荐使用。

一般过期处理会在源代码中出现,只要一个名称上出现一条横线表明该方法或类被过期处理。

注解----@SuppressWarings 压制警告

首先,调用某些操作可能产生问题的时候会出现警告信息,警告不是错误,比如声明的变量没有使用,会有警告,当加上@SuppressWarings ,就没有警告:

///@SuppressWarings 压制警告

public class Annotation

{

public static void main(String[] args)

{

@SuppressWarnings( "unused" ) //加上压制警告,就不会有警告

int a; //变量a没有使用,会有警告

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值