news 2026/5/1 10:03:23

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/5/1 7:24:16

两个独立 App如何相互唤起

这两种方法(Intent直接唤起 和 DeepLink)的核心区别在于:它们不需要把代码合并在一起,而是保持两个独立的 APK(App A 和 App B),通过 Android 系统的通信机制让它们互相“对话”。 假设场景&…

作者头像 李华
网站建设 2026/5/1 9:54:42

NVIDIA正式推出Nemotron 3:用开放模型重塑AI多智能体时代

NVIDIA正式推出了全新的Nemotron 3系列开放模型家族,包括Nano、Super和Ultra三种不同规模的选择2025年12月15日,NVIDIA正式推出了全新的Nemotron 3系列开放模型家族,包括Nano、Super和Ultra三种不同规模的选择,旨在为全球开发者提…

作者头像 李华
网站建设 2026/5/1 7:24:26

PaperReding:《LLaMA: Open and Efficient Foundation Language Models》

论文链接: https://arxiv.org/pdf/2302.13971 这篇论文核心是 Meta AI 团队推出了一套叫LLaMA的开源大语言模型,简单说就是 “好用又好获取” 的 AI 模型,普通人或研究者不用依赖大公司的专属资源也能用上、研究它。总结为以下几点: 1. 核心…

作者头像 李华
网站建设 2026/4/30 14:21:20

10、Linux TCP/IP防火墙配置全解析

Linux TCP/IP防火墙配置全解析 1. 网络安全与防火墙的重要性 在当今数字化时代,网络安全对于企业和个人都至关重要。互联网为我们提供了强大的信息传播和获取工具,但同时也带来了诸如计算机犯罪、信息盗窃和恶意破坏等潜在风险。一个未经授权的人若进入计算机系统,可能会猜…

作者头像 李华
网站建设 2026/5/1 9:08:52

21、Linux网络新闻系统C News深度解析

Linux网络新闻系统C News深度解析 1. 网络新闻概述 网络新闻(Netnews),也就是Usenet新闻,至今仍是计算机网络中极为重要且备受重视的服务之一。尽管有人认为它充斥着大量未经请求的商业邮件和色情内容,但它依然保留了许多高质量的讨论组,在互联网普及之前,这些讨论组是…

作者头像 李华
网站建设 2026/5/1 7:34:57

Tustin 离散化及相关核心技术全解析

目录 1. 引言 2. Tustin 离散化基础 2.1 核心定义 2.2 核心映射公式 2.3 核心特性 3. 关键问题:频率混叠与非线性频率映射 3.1 频率混叠(Frequency Aliasing) 3.1.1 定义 3.1.2 成因与数学本质 3.1.3 工程影响与解决措施 3.2 Tust…

作者头像 李华