Java学习————————————注解

一、Java常用注解:

1、@Override

检测被该注解标注的方法是否继承于父类(接口)

2、@Deprecated

表示被标注的方法已过时

3、@SuppressWarnings

压制警告

二、Java自定义注解

1、格式

(1)元注解:描述注解的注解

常见:

@Target:描述注解作用的位置

ElementType.TYPE:作用于类

ElementType.METHOD:作用于方法

ElementType.FIELD:作用于成员变量

@Retention:描述注解被保留的阶段

RetentionPolicy.RUNTIME:当前被描述的注解,会保留到class字节码文件中,并被JVM读取到

@Documented:描述注解是否被生成到API文档中

@Inherited:描述注解是否被子类继承

(2)public @interface 注解名称{

属性列表

}

2、反编译注解代码

E:JavadocumentsJavaFilesDAY43src111>javac Myannotation.java

E:JavadocumentsJavaFilesDAY43src111>javap Myannotation.class Compiled from "Myannotation.java" public interface Myannotation extends java.lang.annotation.Annotation { }

注:注解本质为一个接口,默认继承Annotation接口(java.lang.annotation.Annotation)

属性:接口中可定义的抽象方法

1)属性的返回值类型

基本数据类型

String

枚举

注解

以上类型的数组

2)使用属性时需要赋值

2.1在使用时需要给属性赋值,或者加上default

2.2若只有一个属性需要赋值,且属性名为value,则value可省略

2.3数组赋值时,值放在{}里面。若数组只有一个值,则{}可省略

package annotation;

public @interface MyAnno {

int method(); String method2() default "丁丁"; // // Person person(); // MA2 ma2(); // // String[] strings(); }

package annotation;

public class Demo2 {

@MyAnno(method = 1) public void method1() { } }

3、使用注解:获取注解定义的属性值

3.1获取注解定义的位置的对象

3.2获取指定的注解

3.3调用注解的抽象方法来获取配置的属性值

经验分享 程序员 微信小程序 职场和发展