java 10. 注解

java 10. 注解

文章目录

    • 10.1 什么是注解
    • 10.2 内置的注解
      • 10.2.1 Override
    • 10.3 自定义注解
    • 10.4 元注解

10.1 什么是注解

注解,一种元数据形式,提供有关程序的数据,该数据不属于程序本身。注释对其注释的代码的操作没有直接影响。

注解的语法:

@注解类型名

注释有多种用途,其中包括:

  • 编译前:为编译器提供编译检查的依据,辅助检查代码错误或抑制检查异常。
  • 编译中或发布时:给编译器提供信息生成代码或给其他工具提供信息生成文档等。
  • 运行时:在运行过程中提供信息给解释器,辅助程序执行。
    • 注解经常和反射结合起来用,多用于框架中。

10.2 内置的注解

10.2.1 Override

  • 加在方法前

  • 表示重写(覆盖)父类的方法;

  • 如果重写(覆盖)有错误,则报错。

  • 因此重写父类方法,请加上@Override注解。

    class Parent {String name;public Parent(){}public Parent(String name){this.name = name;}public void sayHello(){System.out.println("你好,我是" + name )}
    }public class Child extends Parent
    {String name;public Child{}@Overridepublic void sayHello(String str){//这里会报错super.sayHello();System.out.println("Hello,im Datawhale");}
    }/**
    本段代码则不会提示错误public class Child extends Parent
    {String name;public Child{}@Overridepublic void sayHello(){super.sayHello();System.out.println("Hello,im Datawhale");}
    }
    **/
    

10.3 自定义注解

日常开发中我们使用class、interface比较多,而注解和它们一样,也是一种类的类型,他是用的修饰符为 @interface @元注解

使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口,语法如下:

public @interface MyTestAnnotation {注解属性  [default 默认值]
}

10.4 元注解

元注解负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。
@Target,
@Retention,
@Documented,
@Inherited

@Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。
 取值(ElementType)有:
  1.CONSTRUCTOR:用于描述构造器
  2.FIELD:用于描述域
  3.LOCAL_VARIABLE:用于描述局部变量
  4.METHOD:用于描述方法
  5.PACKAGE:用于描述包
  6.PARAMETER:用于描述参数
  7.TYPE:用于描述类、接口(包括注解类型) 或enum声明

@Target(ElementType.TYPE)
public @interface Table {}@Target(ElementType.FIELD)
public @interface NoDBColumn {}

@Retention定义了该Annotation被保留的时间长短:某些Annotation仅出现在源代码中,而被编译器丢弃;而另一些却被编译在class文件中;编译在class文件中的Annotation可能会被虚拟机忽略,而另一些在class被装载时将被读取(请注意并不影响class的执行,因为Annotation与class在使用上是被分离的)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/236743.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring和Spring Boot的主要区别

Spring 和 Spring Boot 是两种不同的 Java 框架,尽管它们具有许多相似之处,但它们在目的、配置方式、起步依赖、运行方式和适应性等方面仍然存在许多不同。 首先,他们的目的不同,Spring 的主要目的是为 Java 应用程序提供一个基础…

21、Web攻防——JavaWeb项目JWT身份攻击组件安全访问控制

文章目录 一、JavaWeb二、JWT攻击 一、JavaWeb webgoat 1.java web的配置文件,配置文件一般在META-INF目录下,文件名常为pom.xml或web.xml 2.如何通过请求,查看运行的java代码。 地址信息PathTraversal/profile-upload 直接找到以该字符P…

网络安全知识图谱 图数据库介绍及语法

本体构建: 资产: 系统,软件 威胁: 攻击: 建模: 3个本体 5个实体类型 CWE漏洞库 http://cwe.mitre.org/data/downloads.html CPECP攻击模式分类库 http://capec.mitre.org/data/downloads.html CPE通用组件库 http:…

spring使用@Scheduled配置定时任务

schedule的使用 在Spring中,你可以使用Scheduled注解来标记一个方法,使其成为一个定时任务。一般情况下Scheduled注解修饰的任务方法没有返回值也没有入参。 开启schedule Configuration EnableScheduling public class ScheduleConfig {}在配置类上使…

B树和B+树的区别

1.节点结构: a.B树: B树的每个节点包含键和对应的值,子节点的数量和键的数量相等。在B树中,每个节点都存储键和值,并且非叶子节点的键值对应于其子节点的范围。 b.B树: B树的非叶子节点只包含键&#xff0…

Modbus RTU协议与S7 200 PLC通讯

一、Modbus RTU功能码 二、功能码使用与解析实例 01功能码 –读线圈状态 主机发送:01 01 00 01 00 08 6C 0C 从机回复: 01 01 01 2F 10 54 主机解析:01 地址(设备ID); 01 功能码;00 01 代表查询的起始线圈地址,即…

二叉树题目:输出二叉树

文章目录 题目标题和出处难度题目描述要求示例数据范围 前言解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题:输出二叉树 出处:655. 输出二叉树 难度 6 级 题目描述 要求 给定二叉树的根结点 root \textt…

链接未来:深入理解链表数据结构(一.c语言实现无头单向非循环链表)

在上一篇文章中,我们探索了顺序表这一基础的数据结构,它提供了一种有序存储数据的方法,使得数据的访 问和操作变得更加高效。想要进一步了解,大家可以移步于上一篇文章:探索顺序表:数据结构中的秩序之美 今…

06.仿简道云公式函数实战-前瞻

1.前言 在上篇文章中,我们介绍了QLExpress的进阶知识,扩展操作符,自定义操作符和自定义函数等内容。学了上面的内容后,目前对于QLExpress使用已经问题不大,从这篇文章,我们就进入我们的主题仿简道云公式函…

mysql索引优化案例

案例1 select * from order where user_id 11 and status 1 and id > 10000 limit 10 2个索引 user_id 、 id 场景 偶然会查询的慢,且不容易复现 原因 id大的时候,mysql评估后使用id更快;但是实际上会多几次IO查询 &#x…

C++的面向对象学习(3):面向对象编程的三大特性之:封装

文章目录 前言:C具有面向对象编程的特性一、根据前言的例子可以看出,对一个类的设计叫做封装。(1)例一:设计一个圆类,求圆的周长封装就是对一个类里面的数据属性和函数进行设计定义。对象就是主程序中对这个类的实例化。 二、类的封装怎么感觉…

CentOS:Docker容器中安装vim

在使用docker容器时,里边没有安装vim时,敲vim命令时提示说:vim: command not found 这个时候就须要安装vim,安装命令: apt-get install vim 出现以下错误: 解决方法: apt-get update 这个命令的…

Spark中使用scala完成数据抽取任务 -- 总结

如题 任务二:离线数据处理,校赛题目需要使用spark框架将mysql数据库中ds_db01数据库的user_info表的内容抽取到Hive库的user_info表中,并且添加一个字段设置字段的格式 第二个任务和第一个的内容几乎一样。 在该任务中主要需要完成以下几个阶…

[Java][File]使用mkdir以及CreateNewFile来制作游戏存档的分级目录+异常抛出机制

文件夹分类: Resource\\Image Resource\\Voice Resource\\VideoInformation\\Characters Information\\mobs Information\\BackpacksPlugin\\Serves Plugin\\Consumers文件的分类: Information\\Characters\\Male.txt Information\\Characters\\Female.t…

刷题记录第五十一天-去除重复字母

题目要求的是字典序最小的结果。只需要理解一点就是按大小顺序排列的字符串的字典序就是最小的,如“abcd”这种。 解题思路如下: 首先明确要使用栈结构,并且是从栈底到栈顶递增,要尽可能保证递增,这样就能保证字典序最…

前端项目常用函数封装(二)

文章目录 前端项目常用函数封装(一)判断两个数组是否有相同元素 返回相同元素(数组)判断hex颜色值是深色还是浅色随机生成深浅样色 js判断是手机端还是移动端使用UA判断使用媒体查询判断 fetch直接读文件内容,解决乱码问题下载文件将字符串下…

ansibe的脚本---playbook剧本(1)

playbook剧本组成部分: 1、task 任务: 主要是包含要在目标主机上的操作,使用模块定义操作。每个任务都是模块的调用。 2、variables变量:存储和传递数据。变量可自定义,可以在playbook中定义为全局变量,可…

深入理解 Spring Boot:核心知识与约定大于配置原则

深入理解 Spring Boot:核心知识与约定大于配置原则 简单说一下为什么要有 Spring Boot? 因为 Spring 的缺点。 虽然 Spring 的组件代码是轻量级的,但它的配置却是重量级的(需要大量 XML 配置) 为了减少配置文件,简化开发 Spri…

HarmonyOS应用事件打点开发指导

简介 传统的日志系统里汇聚了整个设备上所有程序运行的过程流水日志,难以识别其中的关键信息。因此,应用开发者需要一种数据打点机制,用来评估如访问数、日活、用户操作习惯以及影响用户使用的关键因素等关键信息。 HiAppEvent 是在系统层面…

手机数码品牌网站建设的作用是什么

手机数码产品几乎已经成为成年人必备的,包括手机、电脑、摄像机、键盘配件等,同时市场中相关企业也非常多,消费者可供选择的商品类型也很多样,而对企业来讲,只有不断提升品牌形象、获客拉新等才能不断提升企业地位&…