news 2026/6/10 19:26:07

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/6/9 23:10:37

云流化技术与云桌面有什么区别?

在企业数字化转型和远程协同办公成为常态的今天,云端计算资源的访问与使用模式日益多样化。“云桌面”作为一项相对成熟的技术,已被许多用户所熟知。然而,随着三维设计、高端仿真、数字孪生及沉浸式应用需求的激增,另一种技术——…

作者头像 李华
网站建设 2026/6/10 16:16:26

力扣(LeetCode) 67: 二进制求和 - 解法思路

问题概述 给定两个二进制字符串 a 和 b,返回它们的和作为二进制字符串。 解法 1:简单方法 工作原理 从右到左(从最低位到最高位)处理数字,添加对应数字并处理进位: class Solution:def addBinary(self, a, b):result = []carry = 0i = len(a) - 1j = len(b)

作者头像 李华
网站建设 2026/6/9 19:28:38

嵌入式第三十六篇——linux系统编程——线程

一、线程的核心概论与特征 1. 线程的基本定义 线程是轻量级的进程,隶属于某个进程,无法脱离进程独立存在。一个进程中默认包含一个主线程(对应程序入口main函数的执行流),用户可通过编程创建多个子线程,实…

作者头像 李华
网站建设 2026/6/10 17:12:45

收藏这篇!一文读懂大模型三大技术:RAG、Agent与多模态实战指南

大模型通过RAG、Agent与多模态三大技术重塑AI交互边界。RAG解决静态知识时效性,Agent赋予自主决策能力,多模态技术实现跨模态理解。三者协同攻克数据隐私、专业适配等难题,推动行业效率革新与业务重构。未来将向全模态能力、复杂系统构建和垂…

作者头像 李华
网站建设 2026/6/10 16:29:10

国内主要天气 API 数据来源分析与数据链条整理

一、国内主要天气 API 厂商的数据来源分析 服务商/API主要数据来源官方气象机构数据第三方数值预报/模式数据自有模型/融合处理备注高德地图天气 API多源整合(官方第三方)有可能接收 CMA 授权数据可能接入数值模式(如 GFS/ECMWF 等&#xff…

作者头像 李华