iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >Java注解
  • 773
分享到

Java注解

java开发语言 2023-10-10 10:10:27 773人浏览 安东尼
摘要

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、在编译时进行格式检查(JDK内置的三个基本注解)二、使用步骤1.理解Annotation2.Annocat

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


提示:以下是本篇文章正文内容,下面案例可供参考

一、在编译时进行格式检查(jdk内置的三个基本注解)

在这里插入图片描述

二、使用步骤

1.理解Annotation

① jdk 5.0 新增的功能
② Annotation,其实就是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相关操作,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。

2.Annocation的使用示例

示例一: 生成文档相关的注解
示例二: 在编译时进行格式检查(JDK内置的三个基本注解)
@Override: 限定重写父类方法,该注解只能用于方法@Deprecated: 用于表示所修饰的元素(类,方法等)已过时。@SuppressWarnings: 抑制编译器警告

示例三: 跟踪代码依赖性,实现替代配置文件功能

3.如何自定义注解

参照@SuppressWarning定义
① 注解声明为: @interface
②内部定义成员,通常使用value表示
③可以指定成员的默认值,使用default 定义
④如果自定义注解没有成员,表明是一个标识作用

如果注解有成员,在使用注解时,需要指明成员的值。
自定义注解必须配上注解的信息处理流程( 使用反射)才有意义。
自定义注解通过都会指明两个元注解: Retention、Target

4.jdk 提供的4种元注解

元注解:对现有的注解进行解释说明的注解
Retention: 指定所修饰的 Annotation 的生命周期: SOURCE\CLASS (默认行为)\RUNTIME
只有声明为RUNTIME生命周期的注解,才能通过反射获得。
Target: 用于指定被修饰的 Annotation 能用于修饰哪些程序元素
Documented:表示所修施的注解在被iavadoc 解析时,保留下来
Inherited:被它修饰的 Annotation 将具有继承性

5.通过反射获得注解信息

6.jdk 8 中注解的新特性: 可重复注解、类型注解

6.1 可重复注解

在MyAnnotation上声明@Repeatable,成员值为MyAnnotations.class
2.MyAnnotation的Target和Retentiond等元注解与MyAnnotations相同.

6.2 类型注解

ElementType.TYPE_PARAMETER 表示该注解能写在类型变量的声明语句中(如:泛型声明)
ELementType.TYPE_USE 表示该注解能写在使用类型的任何语句中。

7.元注解

元注解:对现有的注解进行解释说明的注解。

三、代码案例

1.自定义注解

package com.tyust.edu;import java.lang.annotation.*;import static java.lang.annotation.ElementType.*;@Inherited@Repeatable(MyAnnotations.class)@Retention(RetentionPolicy.RUNTIME)@Target({TYPE, FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE,TYPE_PARAMETER,TYPE_USE})public @interface MyAnnotation {//    String[] value();    String[] value() default "hello";}
package com.tyust.edu;import java.lang.annotation.Inherited;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;import static java.lang.annotation.ElementType.*;import static java.lang.annotation.ElementType.LOCAL_VARIABLE;@Inherited@Retention(RetentionPolicy.RUNTIME)@Target({TYPE, FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE})public @interface MyAnnotations {    MyAnnotation[] value();}

2.JDK内置的三个基本注解

package com.tyust.edu;import org.junit.Test;import java.lang.annotation.Annotation;import java.util.ArrayList;import java.util.Date;public class AnnotationTest {    public static void main(String[] args) {        Person p = new Student();        p.walk();//        @Deprecated//@Contract(pure = true)//public Date(     int year,//        @MagicConstant(intValues = {Calendar.JANUARY,Calendar.FEBRUARY,Calendar.MARCH,Calendar.APRIL,Calendar.MAY,Calendar.JUNE,Calendar.JULY,Calendar.AUGUST,Calendar.SEPTEMBER,Calendar.OCTOBER,Calendar.NOVEMBER,Calendar.DECEMBER})  int month,//        int date )        Date date = new Date(2023,20,9);        System.out.println(date);        @SuppressWarnings("unused")        int num = 10;    }    //通过反射获取注解信息    @Test    public void testGetAnnotation(){        Class clazz = Student.class;        Annotation[] annotations = clazz.getAnnotations();        for (int i = 0; i <annotations.length; i++) {            System.out.println(annotations[i]);        }    }}//@MyAnnotation(value = "hello")//jdk8之前的写法//@MyAnnotations({@MyAnnotation(value = "hello"),@MyAnnotation(value = "hi")})@MyAnnotation(value = "hello")@MyAnnotation(value = "hi")class  Person{    String name;    int age;    public Person(){    }    public Person(String name,int age){        this.name = name;        this.age = age;    }    public void walk(){        System.out.println("人走路");    }    public void eat(){        System.out.println("人吃饭");    }}interface Info1{    void show();}class Student extends Person implements Info1{    @Override    public void walk() {        System.out.println("学生走路");    }    @Override    public void show() {    }}class Generic<@MyAnnotation T>{    public void show()throws @MyAnnotation RuntimeException{        ArrayList<@MyAnnotation String> list = new ArrayList<>();        int num = (@MyAnnotation int)10L;    }}

来源地址:https://blog.csdn.net/lalalalalab/article/details/133710366

--结束END--

本文标题: Java注解

本文链接: https://www.lsjlt.com/news/427130.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java注解
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、在编译时进行格式检查(JDK内置的三个基本注解)二、使用步骤1.理解Annotation2.Annocat...
    99+
    2023-10-10
    java 开发语言
  • Java|注解之定义注解
    Java语言使用@interface语法来定义注解(Annotation),它的格式如下: public @interface Report { int type() default 211; String level() de...
    99+
    2023-09-14
    java
  • Java注解详解
    目录 一、发现注解二、注解是什么1. 注解的本质2. 注解是针对Java编译器的说明 三、为什么要使用注解四、Java中常用的注解4.1 基础注解(spring-context、spring-we...
    99+
    2023-08-22
    java spring 软件测试
  • Java注解Annotaton详解
    目录1、三种基本的Annotaton@Override解读细节@Deprecated解读效果细节可以修饰方法,类,包,参数等等@SuppressWarnings解读效果细节元注解Re...
    99+
    2022-11-13
  • Java中注解、元注解怎么用
    这篇“Java中注解、元注解怎么用”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“Java中注解、元注解怎么用”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们...
    99+
    2023-06-29
  • 【Java 注解】自定义注解(注解属性与使用)
    文章目录 前言一、自定义注解与元注解1.注解属性类型 二、注解的生命周期以及作用目标1.生命周期2.作用目标 三,简单使用四,注解属性赋值简化 前言 Java注解是一种元数据(m...
    99+
    2023-10-21
    java spring spring boot log4j 经验分享 笔记 后端
  • 如何理解Java注解和注解解析器
    这篇文章主要讲解了“如何理解Java注解和注解解析器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解Java注解和注解解析器”吧!什么是元数据(met...
    99+
    2022-10-19
  • java中的注解
      目录 一、元注解 二、java注解的基本概念 三、注解的使用方法 四、注解的应用场景 1. 代码分析 2. 测试框架 3. 依赖注入 4. Web 开发         Java 注解(Annotation)是 Java 5 引入的...
    99+
    2023-09-16
    java 开发语言
  • Java基础知识之注解、元注解
    目录注解注解作用Java预定义的注解自定义注解元注解实例:注解使用总结总结注解 Java注解也称Java标注,是jdk1.5(5.0)后的新特征。Java语言中的类、方法、变量、参数...
    99+
    2022-11-13
  • java注解与元注解实例分析
    这篇文章主要介绍“java注解与元注解实例分析”,在日常操作中,相信很多人在java注解与元注解实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java注解与元注解实例分析”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-30
  • 如何理解Java注解
    本篇内容介绍了“如何理解Java注解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!由@Autowired引...
    99+
    2022-10-19
  • java 什么是注解
    概念:说明程序的。给计算机看的。注释:用文字来描述程序,给程序员看的。定义:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方...
    99+
    2017-12-23
    java教程 java 注解
  • java基础之注解
    1、元注解1 @Target【作用】用于指定所标注的注解可以使用的位置,例如:@Target(ElementType.METHOD):表示可以使用在方法上,其他结构不能使用;@Target({ElementType.METHOD, Elem...
    99+
    2020-09-10
    java入门 java 注解
  • 什么是java注解?
    自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分。开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解。那么什么是注解?下面给大家介绍一下。什么是注解?注解也叫元数据,即...
    99+
    2014-10-03
    java教程 java 注解
  • java有哪些注解
    java中常用的注解有:1.@Override,重写;2.@Deprecation,弃用;3.@SuppviseWarnings,警告信息;4.@Return,提示信息;5.@Documented,标注生成javadoc的时候是否会被记录;...
    99+
    2022-10-21
  • Java注解(annotation)简述
    目录Java注解(annotation)简单上手1、什么是注解?2、java内置注解3、注解的基本运总结Java注解(annotation)简单上手 反射reflect:https:...
    99+
    2022-11-12
  • Java 8 - 类型注解
    理解Java 8 类型注解需理解几个问题: @pdai注解在JDK哪个版本中出现的,可以在哪些地方用注解什么是类型注解类型注解的作用是什么为什么会出现类型注解(JSR308)Java 8 - 类型注解什么是类型注解类型注解的作用类型注解向下...
    99+
    2022-12-02
    java框架 java全栈 java学习路线 java全栈知识 java面试 知识体系 java技术体系 java编程
  • Java 8 - 重复注解
    理解Java 8 重复注解需理解几个问题: @pdaiJdk8之前对重复注解是怎么做的Jdk8对重复注解添加了什么支持Java 8 - 重复注解什么是重复注解JDK8之前Jdk8重复注解总结# 什么是重复注解允许在同一申明类型(类,属性,或...
    99+
    2022-12-02
    java框架 java全栈 java学习路线 java全栈知识 java面试 知识体系 java技术体系 java编程
  • Java自定义注解
    目录 一、什么是自定义注解 1)Java注解简介 2)Java注解分类 JDK基本注解 JDK元注解 自定义注解 如何自定义注解? 二、自定义注解 1)获取类上注解值 2)获取类属性上的注解属性值 3)获取方法上的注解值  4)获取参数修饰...
    99+
    2023-09-06
    java 开发语言
  • 详解Java注解知识点
    目录一、注解是什么二、jdk支持的注解有哪些2.1 三种常用的注解:2.2 元注解三、注解实例四、总结一、注解是什么 Java 注解用于为 Java 代码提供元数据,看完这句话也许你...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作