注解复习(java)

文章目录

    • 注解
      • 内置注解
        • **@Deprecated**
        • @Override
        • @SuppressWarnings【不建议使用】
        • @Funcationallnterface
      • 自定义注解
      • 元注解
        • @Retention
        • @Target
        • @Documented
        • @Inherited 和 @ Repeatable
      • 反射注解

前言笔记基于动力节点

注解

  • 注解可以标注在 类上,属性上,方法上等。
  • 注解可以做到在不改变代码逻辑的前提下在代码中嵌入补充信息

注解:给编译器看的,或给其他程序看的,程序根据有没有这个注解来决定不同的处理方式

框架 = 反射 + 注解 + 设计模式

内置注解

在这里插入图片描述

@Deprecated
/** JDK 的内置注解:@Deprecated* 1. 被这个注解标注的元素已过时* 2. 这个注解是给编译器看的,编译器看到这个注解之后会有警告提示信息* 3. 可以标注属性,方法,类*/public class Test {//这里有警告MyClass1 myClass1 = new MyClass1();
}@Deprecated
class MyClass1 {// since 属性表示从哪个版本开始已过时// forRemoval 属性值如果是 true 表示已移除@Deprecated(since = "9", forRemoval = true)public static int num = 100;@Deprecatedpublic void doSoms() {}
}

在这里插入图片描述



@Override
/** JDK 的内置注解:@Override* 1. 给编译器看的* 2. 这个注解标注实例方法,被标注的方法必须是重写父类的方法* 3. 这个注解就是在编译阶段进行方法检查,检查这个方法是否重写了父类,如果没有重写父类报错* 4. 只能标注实例方法*/public class Test extends myclass{@Overridevoid test() {}
}class myclass {void test() {};
}


@SuppressWarnings【不建议使用】
/** JDK 的内置注解:@SuppressWarnings* 1. 主要作用:抑制警告* 2. 该注解常见的属性值*     rewtypes: 抑制未使用的泛型的警告*     resource: 抑制未关闭资源的警告*     deprecation: 抑制使用了已过时资源的警告*     all: 抑制所有警告*/public class Test {public static void main(String[] args) throws FileNotFoundException {//取消没用泛型的警告@SuppressWarnings("rawtypes")List list = new ArrayList();//取消没关流的警告@SuppressWarnings("resource")FileInputStream in = new FileInputStream("e:\\file.txt");}
}


@Funcationallnterface

检查是否符合 “函数式接口” 的特征

/** JDK 的内置注解:@Functionallnterface* 1. 这个注解专门用来标注接口的* 2. 被标记的接口必须是一个函数式接口,如果不是函数式接口,编译器报错* 3. 这个注解也是给编译器看的* 4. 函数式接口:接口中抽象方法有且仅有一个
*/
public class Test {public static void main(String[] args) throws FileNotFoundException {}
}@FunctionalInterface
interface T {void fly();
}


自定义注解

使用 @interface 来定义注解

默认情况下可以出现在类,方法,属性,构造方法,方法参数上

所有自定义注解,父类是:java.lang.annotation.Annotation

在这里插入图片描述

public @interface MyAnnotation {/*** 注解也可以定义属性,属性名后面必须添加 ()*///属性String drive();String url();String[] ab();
}
public class Test {public static void main(String[] args){//使用注解@MyAnnotation(drive = "aaa",url = "abc",ab = {"1,2,3"},)int i = 10;}
}



元注解

在这里插入图片描述



@Retention

在这里插入图片描述

@Retention(value = RetentionPolicy.SOURCE)
@Retention(value = RetentionPolicy.CLASS)
@Retention(value = RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
}


@Target

在这里插入图片描述



@Documented

在这里插入图片描述

被这个注解声明的注解,可以生成帮助文档



@Inherited 和 @ Repeatable

在这里插入图片描述




反射注解

在这里插入图片描述

  • field.isAnnotationPersent(AnnotationTest02.class)判断有没有这个注解
  • AnnotationTest02 an = field.getAnnotation(AnnotationTest02.class):获取注解

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

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

相关文章

opencv颜色识别,hsv采用滑块调节

识别效果如图所示,尽量排除了蓝色背景的干扰,hsv可用滑块进行调节,更加方便 import cv2 import numpy as np# 创建一个命名窗口,用于显示滑块 cv2.namedWindow("TrackBar")def nothing(x):pass# 创建滑块控件 cv2.cre…

Python深度学习

原文链接:Python深度学习https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247608512&idx1&sn16e2a0bb6b0a1f6b513be173730090c0&chksmfa826927cdf5e031b702deb04eef5cb0055f65b0d6e4c33588949ee81c7380ee044caeafd8c7&token2068755524&am…

Python中的格式化输出

在Python编程中,格式化输出是一个常见的需求,通过不同的方法,我们可以将变量值以特定的格式显示出来。本文将介绍Python中四种常用的格式化输出方法,包括百分号(%)格式化、str.format()方法、f字符串&#…

arp缓存中毒实验

文章目录 一、相关知识1.什么是arp(地址解析协议)2.什么是免费arp(1)简介(2)主要应用(3)代码 3.什么是arp缓存中毒(1)简介(2)过程&…

整车行业APS项目难点(我的APS项目九)

一、成功案例少,从业人员少,顾问经验少。 二、服务器架构基本全自研,试错过程长,但生产环境对架构要求高。 三、数据体量大(包含产品BOM),对数据质量要求极高、配置BOM技术壁垒高。 四、AI算…

【单链表】06 给定两个单链表,编写算法找出两个链表的公共结点。

🕺作者: 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux算法题上机准备 😘欢迎 ❤️关注 👍点赞 🙌收藏 ✍️留言 题目 给定两个单链表,编写算法找出两个链表的公共结点。 算法思路 先将链表对齐…

24吉林事业单位报名照上传通过别忘了这一步

24吉林事业单位报名照上传通过别忘了这一步 #吉林事业单位 #吉林三支一扶 #吉林事业编 #事业单位报名照片 #吉林事业单位考试 #吉林市事业单位

泛微E9开发 控制Radio框字段打印是否仅显示选中项文字

控制Radio框字段打印是否仅显示选中项文字 1、需求说明2、实现方法3、扩展知识点控制Radio框字段打印是否仅显示选中项文字格式参数说明样例 1、需求说明 当我们对单选框进行打印时,往往会把所有的选项一起打印出来(如下图所示),现…

【AIGC】一、本地docker启动私有大模型

本地docker启动私有大模型 一、最终效果中英文对话生成代码 二、资源配置三、搭建步骤启动docker容器登录页面首次登录请注册登录后的效果 配置模型尝试使用选择模型选项下载模型选择适合的模型开始下载 试用效果返回首页选择模型中英文对话生成代码 四、附录资源监控 五、参考…

mysql 一主多从环境搭建

前期准备 三台服务器,服务器使用的是 centos7 mysql-5.7.24-linux-glibc2.12-x86_64 安装包 使用是版本是 mysql-5.7.24 数据库安装 将 mysql 安装包上传到三台服务器上,我使用 FlashFXP 作为上传工具 解压安装包 tar -zxvf mysql-5.7.24-linux-glibc…

Redis过期策略

过期的key集合 Redis会将每个设置了过期时间的key放入到一个独立的字典中,以后会定时遍历这个字典来删除到期的key。除了定时遍历之外,他还会使用惰性策略来删除过期的key,所谓惰性策略就是在客户端访问这个key的时候,redis对key…

[C++] 由C语言过渡到C++的敲门砖

命名空间 在C/C中,变量、函数和后⾯要学到的类都是⼤量存在的,这些变量、函数和类的名称将都存在于全局作⽤域中,可能会导致很多冲突。使⽤命名空间的⽬的是对标识符的名称进⾏本地化,以避免命名冲突或名字污染 。 在同一个工程中…

Python基础-成年人判断(if条件语句联系)

注意输入的年龄需要转化为字符串 代码: print("欢迎来到游乐场:儿童免费,成人收费") age int(input("请输入你的年龄:")) if age>18:print("你已经成年,需要补票10元") # 四个空格缩进print…

使用ssh服务器管理远程主机

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 目录 一、配置网卡服务 1、配置网卡参数 2、创建网络会话 3、绑定两块网卡 二、远程控制服务 1、配置sshd服务 2、在Windows连接 3、安全密钥…

代码随想录算法训练营第12天|150. 逆波兰表达式求值、239. 滑动窗口最大值、347. 前 K 个高频元素

在补在补了 打卡Day12 1.150. 逆波兰表达式求值2.239. 滑动窗口最大值3.347. 前 K 个高频元素总结 1.150. 逆波兰表达式求值 题目链接:逆波兰表达式求值 文档讲解: 代码随想录 class Solution(object):def evalRPN(self, tokens):""":t…

数据仓库哈哈

数据仓库 基本概念数据库(database)和数据仓库(Data Warehouse)的异同 整体架构分层架构方法论ER模型(建模理论)维度模型 何为分层第一层:数据源(ODS ER模型)设计要点日志…

华为机考真题 -- 小明找位置

题目描述: 小朋友出操,按学号从小到大排成一列;小明来迟了,请你给小明出个主意,让他尽快找到他应该排的位置。算法复杂度要求不高于nLog(n);学号为整数类型,队列规模<=10000; 输入描述: 1、第一行:输入已排成队列的小朋友的学号(正整数),以”,”隔开;例如:…

Studying-代码随想录训练营day34| 62.不同路径、63.不同路径II、343.整数拆分、96.不同的二叉搜索树

第34天&#xff0c;动态规划part02&#xff0c;牢记五部曲步骤&#xff0c;编程语言&#xff1a;C 目录 62.不同路径 63.不同路径II 343.整数拆分 96.不同的二叉搜索树 总结 62.不同路径 文档讲解&#xff1a;代码随想录不同路径 视频讲解&#xff1a;手撕不同路径 题目…

CPU/内存/综合性能评估工具汇总-2:stream

目录 一、概括二、stream 一、概括 嵌入式开发中对要设计的产品、立项的项目进行设计时&#xff0c;往往需要对关键芯片进行性能评估&#xff0c;本文主要总结基于linux系统的产品在性能评估时的工具使用总结&#xff0c;在aarch64(arm64平台下测试)&#xff0c;板卡根文件系统…

源码编译构建LAMP(企业网站架构部署与优化)

部署LAMP平台 LAMV架构是目前成熟的企业网站应用模式之一&#xff0c;指的是协同工作的一整套系统和相关软件&#xff0c;能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词&#xff0c;具体包 括 Linux操作系统&#xff0c;Apache网站服务器、MySQL数据库服务器、P…