当前位置: 首页 > 编程笔记 >

java注解的全面分析

葛鸿熙
2023-03-14
本文向大家介绍java注解的全面分析,包括了java注解的全面分析的使用技巧和注意事项,需要的朋友参考一下

全面解析java注解

Java中的常见注解

a.JDK中的注解

    @Override 覆盖父类或者父接口的方法
    @Deprecated 表示方法已经过时
    @SuppressWarnings("deprecation") 忽略方法过时警告

b.常见的第三方注解

    例如Spring中的@Autowired(自动注入)

注解的分类

a.按照运行机制分

    1.源码注解
        注解只在源码中存在,编译成class文件就不存在了

    2.编译时注解
        注解在源码和class文件中都存在
        eg:@Override、@Deprecated、@SuppressWarnings

    3.运行时注解
        在运行阶段还起作用,甚至会影响运行逻辑
        eg:@Autowired

b.按照来源分

    1.来自JDK的注解
    2.来自第三方的注解
    3.自定义注解

c.元注解:注解的注解

自定义注解

1.自定义注解的语法要求

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Description {
  String desc();
  String author();
  int age() default 18;
}

注意:

  • 使用@interface关键字定义注解
  • 成员以无参无异常方式声明
  • 可以用default为成员指定一个默认值
  • 成员类型是受限的,合法的类型包括原始类型以及String、Class、Annotation、Enumeration
  • 如果注解只有一个成员,则成员名必须取名为value(),在使用时可以忽略成员名和赋值号(=)
  • 注解类可以没有成员,没有成员的注解称为标识注解

2.元注解

a.@Target({ElementType.METHOD,ElementType.TYPE})

注解的作用域:

  • ElementType.CONSTRUCTOR 构造方法声明
  • ElementType.FIELD 字段声明
  • ElementType.LOCAL_VARIABLE 局部变量声明
  • ElementType.METHOD 方法声明
  • ElementType.PACKAGE 包声明
  • ElementType.PARAMETER 参数声明
  • ElementType.TYPE 类、接口

b.@Retention(RetentionPolicy.RUNTIME)

注解的生命周期:

  • RetentionPolicy.SOURCE 只在源码显示,编译时会丢弃
  • RetentionPolicy.CLASS 编译时会记录到class中,运行时忽略
  • RetentionPolicy.RUNTIME 运行时存在,可以通过反射读取

c.@Inherited

标识性的元注解:允许子类继承

d.@Documented

生成javadoc时会包含注解

使用自定义注解
语法:@注解名(成员1=成员值1,成员2=成员值2)

@Description(desc="I am demo",author="boy",age=18)
public void demo(){}

解析注解

概念:通过反射获取类、函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑

以上就是java 注解的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 本文向大家介绍全面解析Java中的注解与注释,包括了全面解析Java中的注解与注释的使用技巧和注意事项,需要的朋友参考一下 注解 一、什么是 Annotation? (注解 or 注释) Annotation, 准确的翻译应该是 -- 注解。 和注释的作用完全不一样。 Annotation 是JDK5.0及以后版本引入的一个特性。 与类、接口、枚举是在同一个层次,可以成为java 的一个类型。 语

  • 本文向大家介绍Java中的static关键字全面解析,包括了Java中的static关键字全面解析的使用技巧和注意事项,需要的朋友参考一下 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一。下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题。以下是本文的

  • 本文向大家介绍全面了解Java中的CAS机制,包括了全面了解Java中的CAS机制的使用技巧和注意事项,需要的朋友参考一下 前言 在看到Java锁机制的时候,无意中看到了CAS这个词,然后在百度查找CAS看了很多文章始终没有看的太懂,今天又在Google上查找了一些资料,才算是真正弄清楚了CAS机制。 什么是CAS 在jdk 1.5中增加的一个最主要的支持是Atomic类,比如说AtomicInt

  • 本文向大家介绍Java注解Annotation解析,包括了Java注解Annotation解析的使用技巧和注意事项,需要的朋友参考一下 概述        Java在1.5版本引入注解Annotation,又称Java标注,注解是一种语法元数据,可以被直接使用到源代码中,类/方法/变量/参数/包名等都可以被注解。和Javadoc标签不同,编译器在生成class文件时候能够保留注解代码,同时,可能为

  • 本小节我们将学习 Java5 引入的一种机制 —— 注解(Annotation)。通过本小节的学习,你将了解什么是注解,注解的作用,Java 中内置注解有哪些以及注解的分类,如何自定义注解,如何处理注解等内容。 1. 什么是注解 Java 注解(Annotation)又称为 Java 标注,是 Java5开始支持加入源代码的特殊语法元数据。Java 语言中的类、方法、变量、参数和包等都可以被标注。

  • 本文向大家介绍java javax.annotation.Resource注解的详解,包括了java javax.annotation.Resource注解的详解的使用技巧和注意事项,需要的朋友参考一下 java 注解:java javax.annotation.Resource  当我们在xml里面为类配置注入对象时,会发现xml文件会越来越臃肿,维护起来很麻烦。这时候我们可以使用注解这种机制来