Java中的注解和反射

news/2024/11/29 18:44:56/

注解 

在Java程序中,我们可以在很多地方看到注解,如一下情况:

 

 注解有检查和约束的作用

 内置注解 

当被@Deprecated注解修饰的方法被使用的时候,方法会被画上杠:

 

元注解 

当我们打开一个注解的时候,可以看到以下这些信息:

 

而上面这些注解就是元注解,在Java中,元注解有以下几个:

 

上面的@Target注解用来描述注解的使用范围,打开它的源码:

public enum ElementType {/** Class, interface (including annotation type), or enum declaration */TYPE,    /** Field declaration (includes enum constants) */FIELD,/** Method declaration */METHOD,/** Formal parameter declaration */PARAMETER,/** Constructor declaration */CONSTRUCTOR,/** Local variable declaration */LOCAL_VARIABLE,/** Annotation type declaration */ANNOTATION_TYPE,/** Package declaration */PACKAGE,/*** Type parameter declaration** @since 1.8*/TYPE_PARAMETER,/*** Use of a type** @since 1.8*/TYPE_USE
}

 它可以用在类、方法、属性、字段、构造器、本地变量、另一个注解、包、类型参数声明、类型使用上面。

@DocumentSpring Data MongoDB提供的一个注解,用于指定模型类型所对应的集合名称。@Document注解作用在类上,标记实体类为文档对象。@Documented注解表明这个注解应该被javadoc工具记录。在实际开发中,我们通常要在实体类上注明@Document。@Documented和@Deprecated注解长得有点像,但是@Documented只能用在注解上,如果一个注解被@Documented标注,那么被修饰的类在生成JavaDoc文档时会显示该注解。

自定义注解 

 

public class CustomAnnotation {@MyAnnotationpublic void testAnnotation(){}}@Target(ElementType.METHOD)
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation{}

因为注解是有检查和约束作用的,当我将@MyAnnotation注解放在类上时就会报错,因为我定义的注解使用范围是在方法上面:

 反射

有关反射的详细信息可以去看我的这篇文章:(2条消息) 反射机制和类加载机制_反射加载类_咸鱼吐泡泡的博客-CSDN博客 

在理解反射之前先了解静态和动态语言:

 

 

 

 

 

 

 

 

 

 

 

 


http://www.ppmy.cn/news/60758.html

相关文章

【JavaEE】_1.多线程(1)

目录 1.操作系统 2. 进程 3. CPU分配——进程调度 3.1 操作系统对进程的管理 3.2 PCB的属性 3.2.1 基础属性 3.2.2 实现进程调度的属性 4. 内存分配——内存管理 4.1 虚拟地址空间 4.2 进程间通信 5. 线程 5.1 线程的概念 5.2 创建与使用多线程 5.2.1 方式1&a…

Docker代码环境打包

1. 介绍 Docker是一种开源的容器化平台,它可以在操作系统级别运行应用程序。通过将应用程序及其依赖项封装成一个可移植的容器,Docker使得应用程序可以在任何环境中轻松部署、运行和管理。使用Docker,开发人员可以避免在不同环境中出现的配置…

解决WPS字体缺失问题的四种方法

Ubuntu下提示WPS字体缺失解决 在使用WPS Office进行文档编辑时,有时会遇到提示“WPS字体缺失”的问题,这该如何解决呢?以下是几种解决方法,供大家参考。 方法一:卸载并重新安装WPS Office 打开终端,输入以下…

1010. 总持续时间可被 60 整除的歌曲

题目&#xff1a; 在歌曲列表中&#xff0c;第 i 首歌曲的持续时间为 time[i] 秒。 返回其总持续时间&#xff08;以秒为单位&#xff09;可被 60 整除的歌曲对的数量。形式上&#xff0c;我们希望下标数字 i 和 j 满足 i < j 且有 (time[i] time[j]) % 60 0。 示例 1&a…

@ControllerAdvice 注解原理

目录 1. 启动时扫描 ControllerAdvice 注解&#xff1a; 2. ControllerAdviceBeanPostProcessor&#xff1a; 3. ExceptionHandlerMethodResolver&#xff1a; 4. 注册异常处理方法&#xff1a; 5. 请求处理和异常捕获&#xff1a; 6. ExceptionHandlerExceptionResolver…

5月5号面试总结

昨天下午做了一场面试&#xff0c;果不其然会有sql题和算法题。 这里重点说的:各位想要在技术方面有所建树的(换句话说&#xff1a;想要拿高薪),想要走的更远,有更多的机会,突破35岁魔咒,必须要先把力扣上的算法题和牛客上的SQL题&#xff0c;都刷明白。 昨天给我面试的是一个小…

JDK的安装

目录 一、JDK概念 二、Windows下安装JDK &#xff08;1&#xff09;下载安装包 &#xff08;2&#xff09;设置环境变量 &#xff08;3&#xff09;验证 三、Linux下安装JDK &#xff08;1&#xff09;下载安装包 &#xff08;2&#xff09;设置环境变量 &#xff08;…

PySpark基础入门(2):RDD及其常用算子

更好的阅读体验&#xff1a;PySpark基础入门&#xff08;2&#xff09;&#xff1a;RDD及其常用算子 - 掘金 (juejin.cn) 目录 RDD简介 RDD Coding RDD简介 RDD&#xff08;Resilient Distributed Dataset&#xff09;&#xff0c;是一个弹性分布式数据集&#xff0c;是Sp…