博文

Java 反射的系统化认知:上帝视角 + 核心四剑客 + 工业防腐

反射就是让你在程序运行时,像做 B 超一样审视甚至修改一个类的内部结构。掌握了四层认知模型,反射不再是死记硬背的 API 调用。 Summary: 反射就是让你在程序运行时,像做 B 超一样审视甚至修改一个类的内部结构。掌握了四层认知模型,反射不再是死记硬背的 API 调用。 普通的编程是作为"局内人",老老实实 new 对象、调方法。反射则是让你拥有 上帝视角 ——在程序运行的时候,去审视甚至动态操控一个类的内部结构。 这套体系看透了,本质上就是三层:先拿到"类的大脑"(Class 对象),再通过四剑客去操控它的构造器、属性和方法,最后时刻警惕反射的两把双刃剑。 第一层:核心心法——什么是"类的大脑" .java 源码编译成 .class 字节码。当 JVM 加载这个文件时,会在堆内存中为它创建一个 独一无二的 Class 对象 。 这个 Class 对象就是该类的"大脑"和"蓝图",它里面记录了这个类有哪些属性、哪些方法、哪些构造器。反射代码编写的唯一核心心法就是: 先拿到这个"大脑"(Class 对象),再通过它去操控一切 。 获取 Class 对象有且仅有三种标准写法(以 User 类为例): // 写法 1:全类名字符串(最常用,多用于配置文件/框架底层) Class<?> clazz1 = Class.forName("com.xyz.model.User"); // 写法 2:类名.class(最直观,常用于方法参数传参) Class<User> clazz2 = User.class; // 写法 3:对象.getClass()(已有实例,想探查其类型) User user = new User(); Class<? extends User> clazz3 = user.getClass(); 第二层:掌控"核心四剑客" 拿到了 Class 对象(大脑)后,反射的所有后续操作,都只在这四个核心类之间打转。它们的编写套路高度一致: 找大脑要器官 → 强行激活权限(如果需要) → 执行动作 。 剑客一:Constructor(...

Java 字节流的系统化认知:抓住骨架,剩下的只是组装

Java 的 I/O 体系看起来有好几十个类,但它的设计模式极其简单——两个基类、几个节点流、一堆装饰器。这篇从四层认知出发,帮你把字节流体系彻底读薄。

3. Tool 系统——Agent 之于工具,如手之于笔

前两篇定义了 Tool 接口并在主循环中调用了它们,但用的还是玩具级 mock。这一篇我们把工具系统做实——从安全计算器到带沙箱的文件读取器,再到并行执行引擎,一步到位。

从零构建一个 MCP Agent 运行时(二):Tool 注册与发现,干净一点能死吗

Tool Registry 是整个 Runtime 的入口。这篇从 ToolDefinition 的数据模型开始,讲到动态发现、MCP Schema 转化、Interceptor 链,最后落地成一个可以跑起来的注册中心。

1. 项目启动与架构总览

你准备从零搭建一个可扩展的 TypeScript Agent 运行时核心,这篇文章告诉你为什么要有这个项目、整体架构怎么划分、核心接口怎么设计,以及为什么接口先行比写代码更重要。

2. Agent 主循环——AI 的"心跳"

上一篇搭好了骨架,这一篇让 Agent 真正"活"起来——实现那个让 LLM 和自己反复对话、调用工具、直到给出最终答案的主循环。

从零构建一个 MCP Agent 运行时(一):为什么我放弃了 Spring AI

用了半年 Spring AI 和 LangChain4j 之后,我决定自己写一个 MCP Agent Runtime。这篇文章讲讲我的理由和整体架构设计。