news 2026/7/1 11:41:00

Java注解与反射

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java注解与反射

Annotation作用:

不是程序本身,可以对程序做出解释

可被其他程序读取

Override:重写

Mapper:写在Dao层接口上,放入IOC容器

select insert update delete : 增删改查接口

Deprecated:不推荐使用但能用的内容(或者存在更好的方式)

元注解: 注解其他的注解

仅4类

Target:注解的适用范围

Retention:表示需要在什么时候还有效 (一般都是Runtime,运行时)

Document:说明该注解被包含在javadoc中

Inherited:说明子类可以继承父类中的该注解

自定义注解:@interface

若无默认值 则必须给注解赋值

public class test03 { @myAnnotation(value = "test03") public void test03(){ System.out.println("test03"); } } //自定义注解 @Target({ElementType.METHOD,ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @interface myAnnotation { //注解的参数: 参数类型 + 参数名 String value() default ""; }

反射(Reflection):

是Java被视为动态语言的关键

一个类在内存中只有一个class对象,一个类被加载后,类的整个结构都会被封装在Class对象中

获得Class类的实例

Class c3 = Student.class; System.out.println(c3.hashCode()); Class c2 = Class.forName("com.study.mapper.Student"); System.out.println(c2.hashCode()); //获得父类类型 Class c4 = c1.getSuperclass(); System.out.println(c4);

类的加载过程:

顺序:

class A{ static { System.out.println("A类静态代码块初始化"); m=300; } static int m =100; public A() { System.out.println("A类构造方法初始化"); } }

A类静态代码块初始化(先加载static)
A类构造方法初始化(再加载构造器)
100

几种常见用法

public class test03 { public static void main(String[] args) throws ClassNotFoundException { Class c1 = Class.forName("com.study.mapper.Student"); System.out.println(c1.getName()); System.out.println(c1.getSimpleName()); Class c2 = Class.forName("com.study.mapper.Person"); Field[] field = c1.getFields(); for (Field f : field) { System.out.println(f); } Field[] field1 = c2.getDeclaredFields(); for (Field f : field1) { System.out.println(f); } Method[] method = c1.getMethods(); for (Method m : method) { System.out.println(m); } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 21:34:20

2025 网络安全就业指南:从零基础到年薪 50W 的突围路径

2025 网络安全就业指南:从零基础到年薪 50W 的突围路径 一、行业现状:为什么网络安全成了 “最抗冻” 的赛道? 当传统互联网岗位陷入 “内卷”,网络安全却逆势成为就业市场的 “香饽饽”。工信部最新数据显示,2024 年…

作者头像 李华
网站建设 2026/6/29 3:33:34

Linux中软件包管理器yum

软件包在linux中安装软件,一个通常的办法就是下载该软件的源代码,然后将这些代码编译形成可执行程序。这一办法虽然可行,但是太过繁琐,因此为了简化这一过程,有些人就把一些常用的软件提前编译好,做成软件包…

作者头像 李华
网站建设 2026/6/30 18:54:11

linux的开发工具vim

目录 vim是什么 vim的基本操作 vim正常模式的命令集 vim底行模式命令集 vim是什么 vim是一个高度可配置的文本编辑器,旨在实现高效的文本编辑,它有六种基本模式:普通模式、插入模式、可视模式、选择模式、命令行模式和替换模式。其中&…

作者头像 李华
网站建设 2026/7/1 15:47:32

基于SpringBoot+Vue的宠物代遛系统设计与实现

前言 🌞博主介绍:✌CSDN特邀作者、全栈领域优质创作者、10年IT从业经验、码云/掘金/知乎/B站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战,以及程序定制化开发、文档编写、答疑辅导等。✌…

作者头像 李华
网站建设 2026/7/1 11:31:33

收藏!程序员转型大模型:不是从零开始,而是降维升级

当“大模型”从技术圈的高频热词,彻底变成企业招聘需求里的“硬指标”,不少深耕Java、Python多年的传统程序员陷入了职业抉择:是守着熟悉的业务逻辑和CRUD安于现状,还是借着AI浪潮完成职业跃迁?答案其实早已清晰——相…

作者头像 李华