文章内容
-
JDK内置的基本注释类型
- @Override
- @Deprecated
- @SuppressWarnings
-
元注解
- 对注释进行注解
❤️内容涉及注解的定义,快速入门,注意事项
🌈 跟着B站一位老师学习的内部类内容,现写这篇文章为学习内部类的小伙伴提供思路支持,希望可以一起感受java的魅力,爱上java编程!!!
1、注解
1.1、注解的理解
1.2、基本的Annotation介绍
Deprecated:过时了、已弃用
Suppress:镇压、抑制、平定
Element:元素
1.3、Annotation应用实例
1.3.1、Override
1.3.2、@ Targer
@Target 修饰注解的注解,称为元注解
@Target(ElementType.METHOD)
1.3.3、@ Deprecated
代码演示
package com.fhsedu.annotation;/*** @author fhs* @version 1.0*/
public class Deprecated_ {public static void main(String[] args) {}
}
//老师解读:
//1、@Deprecated 修饰某个元素,表示该元素已经过时了
//2、即不再推荐使用,但是仍然可以使用
//3、查看@Deprecated 注解源码
//4、可以修饰方法,类,字段,包,参数 等等
//5、@Deprecated 可以做版本升级过渡使用
/*
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}*/
@Deprecated
class A{public int n1 = 10;public void hi() {}
}
即:如果jdk8 升级为 jdk11时,某个类不建议使用有新的类可以代替它,就可以注解为:
@Deprecated
1.3.4、SuppressWarnings
SuppressWarnings:属性介绍以及属性说明
- all,抑制所有警告
- boxing,抑制与封装/拆装作业相关的警告
- cast,抑制与强制转型作业相关的警告
- dep-ann,抑制与淘汰注解相关的警告
- deprecation,抑制与淘汰的相关警告
- fallthrough,抑制与switch陈述式中遗漏break相关的警告
- finally,抑制与隐藏变数的区域变数相关的警告
- hiding,抑制与隐藏变数的区域变数相关的警告
- incomplete-switch,抑制与switch陈述式(enum case)中遗漏项目相关的警告
- javadoc,抑制与javadoc相关的警告
- …
package com.fhsedu.annotation;import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.ArrayList;import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.ElementType.LOCAL_VARIABLE;/*** @author fhs* @version 1.0*/
public class SuppressWarnings_ {/*//通常我们可以防止具体的语句,方法,类@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})@Retention(RetentionPolicy.SOURCE)public @interface SuppressWarnings {String[] value();
}*///解读://1、当我们不希望看到这些警告的时候,可以使用SuppressWarnings_注解来抑制警告信息//2、在{""}中,可以写入你希望抑制(不显示)警告信息//3、可以指定的警告类型....文档中细看有很多的。。//4、关于@SuppressWarnings作用范围是和你放置的位置相关// 比如@SuppressWarnings放置在main方法,那么抑制警告的范围就是 main方法@SuppressWarnings({"rawtypes", "unchecked", "unused"})public static void main(String[] args) {ArrayList list = new ArrayList();list.add("jack");list.add("tom");list.add("mary");int i;System.out.println(list.get(1));}@SuppressWarnings("unused")public void hi() {@SuppressWarnings("rawtypes")ArrayList list = new ArrayList();list.add("jack");list.add("tom");list.add("mary");int i;System.out.println(list.get(1));}
}
看抑制范围:只在main范围
1.4、元注解(了解)
Retention:保留
Policy:政策
2.4.1、@RetentionPolicy
作用时期:source -->class—>runtime
1.4.2、@Target
1.4.3、@Documented
1.4.4、Inherited注解
Inherited:继承
如果a类标注了:@Inherited 那么b继承a就会自动在b类上标注@Inherited