1.@Override注解
@Override是伪代码,表示重写(当然不写也可以),不过写上有如下好处: 1、可以当注释用,方便阅读; 2、编译器可以给你验证@Override下面的方法名是否是你父类中所有的,如果没有则报错。例如,你如果没写@Override,而你下面的方法名又写错了,这时你的编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。
实例:
public class Person {
private String name;
private String gender;
private String birthday;
public Person() {
}
public Person(String name, String gender, String birthday) {
this.name = name;
this.gender = gender;
this.birthday = birthday;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
@Override //重写了Object类的toString()方法
public String toString() {
return super.toString();
}
//@Override //错误因为此方法不是重写父类的方法
public void sayHello(){
}
}
2. @Deprecated
注解 @Deprecated 可以标记 Java API 状态,可以是以下几种:
使用它存在风险,可能导致错误 可能在未来版本中不兼容 可能在未来版本中删除 一个更好和更高效的方案已经取代它。 Java 9 中注解增加了两个新元素:since 和 forRemoval。
since: 元素指定已注解的API元素已被弃用的版本。 forRemoval: 元素表示注解的 API 元素在将来的版本中被删除,应该迁移 API。
实例:
public class Person {
private String name;
private String gender;
private String birthday;
public Person() {
}
public Person(String name, String gender, String birthday) {
this.name = name;
this.gender = gender;
this.birthday = birthday;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
@Override //重写了Object类的toString()方法
public String toString() {
return super.toString();
}
@Deprecated //表示此方法已经被废弃不推荐使用。
public void sayHello(){
System.out.println("how are you?");
}
public static void main(String[] args) {
Person p = new Person();
p.sayHello(); //不推荐使用此方法。
}
}
3. @SupperessWarnings
@SupperessWarnings:抑制编译器警告。 常用用法如下: @SuppressWarnings(“rawtypes”) 是什么含义 SuppressWarnings压制警告,即去除警告 rawtypes是说传参时也要传递带泛型的参数 @SuppressWarnings(“unchecked”) unchecked 执行了未检查的转换时的警告 @SuppressWarnings({“static-access”, “unchecked”}) 指示应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告。
实例:
public class Person {
private String name;
private String gender;
private String birthday;
public Person() {
}
public Person(String name, String gender, String birthday) {
this.name = name;
this.gender = gender;
this.birthday = birthday;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
@Override //重写了Object类的toString()方法
public String toString() {
return super.toString();
}
@SuppressWarnings({"unchecked","rawtypes"})
public void initPersons(){
List list = new ArrayList();
list.add(new Person());
}
}