Java基础-注解

简介: 一、Annotation的概念  Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。

一、Annotation的概念

  Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。

二、Annotation的作用

(1)生成文档 : 可以为类、方法等生成特定的java doc。
(2)编译处理 :在编译的时候,可以用注解处理器,对其中的源代码进行处理。
(3)运行控制:可以在运行时标注类、方法等,用反射的方式达到特殊的流程控制等目的。

三、JDK元注解

(1)@Documented
@Documented Annotation的作用生成Javadoc时包含该注解。
(2)@Retention
@Retention Annotation的作用是标注注解的生命周期,取值RetentionPolicy 枚举。

public enum RetentionPolicy {
    //注解生存周期是Java的原文件,例如 Override 
    SOURCE,
   //注解生存周期是Java的Class文件。底层开发人员使用,用于根据Class文件生成其他文件。
    CLASS,
  //注解生存周期是Java的运行时。
    RUNTIME
}

(3)@Target
@Target Annotation的作用是说明注解的作用对象,取值

public enum ElementType {
    //类、注解、枚举
    TYPE,
    //字段、枚举值
    FIELD,
    //方法
    METHOD,
    //参数
    PARAMETER,
    //构造函数
    CONSTRUCTOR,
    //局部变量
    LOCAL_VARIABLE,
    //注解
    ANNOTATION_TYPE,
    //包
    PACKAGE,
    //类型变量的声明语句
    TYPE_PARAMETER,
    //类型的任何语句
    TYPE_USE
}

(4)@Inherited
  @Inherited Annotation的作用是如果被@Inherited标注的注解,在类上面使用时,子类会自动继承此注解,否则的话,子类不会继承此注解。

四、JDK内置注解

(1)@Override
用于修饰此方法覆盖了父类的方法。
**(2)@Deprecated **
用于标记修饰对象已经过时。
(3)@SuppressWarnnings 抑制编译器警告

名称 说明
1.deprecation 使用了不赞成使用的类或方法时的警告
2.unchecked 执行了未检查的转换时的警告,例如当使用集合时没有用泛型 (Generics) 来指定集合保存的类型
3.fallthrough 当 Switch 程序块直接通往下一种情况而没有 Break 时的警告
4.path 在类路径、源文件路径等中有不存在的路径时的警告
5.serial 当在可序列化的类上缺少 serialVersionUID 定义时的警告
6.finally 何 finally 子句不能正常完成时的警告
7.unused 代码中的变量或方法没有被使用产生的警告
8.rawtypes 使用泛型时没有指定类型的警告
9.all 关于以上所有情况的警告

五、自定义Annotation

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
//设置是否使用在Javadoc中
@Documented
//设置生命周期
@Retention(RetentionPolicy.RUNTIME)
//设置作用对象
@Target(ElementType.TYPE)
public @interface 注解名称 {
        //根据需要编写成员方法
}

相关文章
|
11月前
|
XML Java 编译器
Java注解的底层源码剖析与技术认识
Java注解(Annotation)是Java 5引入的一种新特性,它提供了一种在代码中添加元数据(Metadata)的方式。注解本身并不是代码的一部分,它们不会直接影响代码的执行,但可以在编译、类加载和运行时被读取和处理。注解为开发者提供了一种以非侵入性的方式为代码提供额外信息的手段,这些信息可以用于生成文档、编译时检查、运行时处理等。
215 7
|
8月前
|
Java 编译器 开发者
注解的艺术:Java编程的高级定制
注解是Java编程中的高级特性,通过内置注解、自定义注解及注解处理器,可以实现代码的高度定制和扩展。通过理解和掌握注解的使用方法,开发者可以提高代码的可读性、可维护性和开发效率。在实际应用中,注解广泛用于框架开发、代码生成和配置管理等方面,展示了其强大的功能和灵活性。
161 25
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
260 43
Java学习十六—掌握注解:让编程更简单
|
11月前
|
Java 编译器 数据库
Java 中的注解(Annotations):代码中的 “元数据” 魔法
Java注解是代码中的“元数据”标签,不直接参与业务逻辑,但在编译或运行时提供重要信息。本文介绍了注解的基础语法、内置注解的应用场景,以及如何自定义注解和结合AOP技术实现方法执行日志记录,展示了注解在提升代码质量、简化开发流程和增强程序功能方面的强大作用。
374 5
|
存储 缓存 Java
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
这篇文章详细介绍了Java中的IO流,包括字符与字节的概念、编码格式、File类的使用、IO流的分类和原理,以及通过代码示例展示了各种流的应用,如节点流、处理流、缓存流、转换流、对象流和随机访问文件流。同时,还探讨了IDEA中设置项目编码格式的方法,以及如何处理序列化和反序列化问题。
338 1
java基础:IO流 理论与代码示例(详解、idea设置统一utf-8编码问题)
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
Arthas Java 测试技术
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
Java字节码文件、组成、详解、分析;常用工具,jclasslib插件、阿里arthas工具;如何定位线上问题;Java注解
Java字节码文件、组成,jclasslib插件、阿里arthas工具,Java注解
|
JSON Java 数据库
java 常用注解大全、注解笔记
关于Java常用注解的大全和笔记,涵盖了实体类、JSON处理、HTTP请求映射等多个方面的注解使用。
325 0
java 常用注解大全、注解笔记
|
Java 编译器 程序员
Java注解,元注解,自定义注解的使用
本文讲解了Java中注解的概念和作用,包括基本注解的用法(@Override, @Deprecated, @SuppressWarnings, @SafeVarargs, @FunctionalInterface),Java提供的元注解(@Retention, @Target, @Documented, @Inherited),以及如何自定义注解并通过反射获取注解信息。
Java注解,元注解,自定义注解的使用
|
12月前
|
Java 编译器
Java进阶之标准注解
Java进阶之标准注解
115 0