java注解和反射(一)----注解和内置注解

前言

自从在B站认识了狂神这个UP主,我真的学了很多东西。今天我将分享他注解和反射课程的笔记

1. 什么是注解

[1] Annotation是从JDK 5.0开始引入的新技术
[2] Annotation的作用:

  • 不是程序本身,可以对程序作出解释(这一点和注释(comment)没什么区别)
  • 可已被其他程序(比如: 编译器等)读取

[3] Anotation的格式:
注释是以“@注解名”在代码中存在的,还可以添加一些参数值
例如: @SupperessWarnings(values=“unchecked”)

[4] Annotation在哪里使用?
可以附加在package,class,method,field等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些元数据的访问。

2. 内置注解

[1] @Override: 定义在java.lang.Override中,此注解只能适用于修饰方法,一般标注在我们重写父类方法上。
[2] @Deprecated: 定义在 java.lang.Deprecated中,此注解可以用于修饰方法,属性,类。表示不鼓励程序使用这样的元素,也就是被遗弃了。这种情况下,通常都是后来维护中加入了新的方法,属性或类对原本的进行了替换。(不过我们使用了也不会报错,只会在对应的地方有一条横线)
[3] @SuppressWarnings: 定义在java.lang.SuppressWarnings中,用来抑制编译器的警告信息。
与前两个注解有所不同,你需要添加一个参数才能正确使用,这些参数都是定义好的了。
使用:
@SuppressWarnings(“”)
@SuppressWarnings({})
@SuppressWarnings(value={})

 @SuppressWarnings("all")   #表示抑制所有的警告
 @SuppressWarnings("unchecked") # 告诉编译器忽略 unchecked 警告信息,如使用List,ArrayList等未进行参数化产生的警告信息
 @SuppressWarnings(values={"deprecation"}) #如果使用了使用@Deprecated注释的方法,编译器将出现警告信息。 使用这个注释将警告信息去掉。
 等等......

相关示例:
[1] 编码时我们总会发现如下变量未被使用的警告提示:
java注解和反射(一)----注解和内置注解_第1张图片
上述代码编译通过且可以运行,但每行前面的“感叹号”就严重阻碍了我们判断该行是否设置的断点了。这时我们可以在方法前添加 @SuppressWarnings(“unused”) 去除这些“感叹号”。

[2] 抑制单类型的警告:

//rawtypes是说传参时也要传递带泛型的参数
@SuppressWarnings("unchecked")
public void addItems(String item){
  @SuppressWarnings("rawtypes")
   List items = new ArrayList();
   items.add(item);
}

[3] 抑制多类型的警告:

@SuppressWarnings(value={"unchecked", "rawtypes"})
public void addItems(String item){
   List items = new ArrayList();
   items.add(item);
}

[4] 抑制所有类型的警告:

@SuppressWarnings("all")
public void addItems(String item){
   List items = new ArrayList();
   items.add(item);
}

你可能感兴趣的:(Java注解和反射)