Java反射
一、反射机制有关的类大多在java.lang.reflect包中。
常用类:
java.lang.Class<T> 类类型
java.lang.reflect.Method 方法类型
java.lang.reflect.Field 字段类型
二、常用方法:
获得类的类类型:
①
12Class cla1=String.
class
;
Class cla2=UserEntity.
class
;
②
12345try
{
Class cla=Class.forName(
"UserEntity"
);
}
catch
(ClassNotFoundException e1) {
e1.printStackTrace();
}
③
1Class clazz = obj.getClass ();
根据类名创建类的对象:
12String className =
"com.xyz.entity.Car "
;
Object obj = Class.forName (className ).newInstance();
1获取方法:
1使用Class类中的方法:
12public
Method getMethod(String name,
Class<?>... parameterTypes);
//获取类的指定方法。第一个参数:方法名;第二个参数:方法中参数的类型
1public
Method[] getMethods();
//获取类的全部方法
示例:
1Method method = clazz.getMethod(
"start"
);
执行方法:
1method.invoke(obj);
获得类中的字段:
12public
Field getDeclaredField(String name);
public
Field[] getDeclaredFields();
1//Field类中
1String fieldName=field.getName();
//获得字段的属性名
1Class fieldType=field.getType();
//获得字段的属性值
1String typeStr=fieldType.toString();
//结果:class java.lang.String
还有(下面这两个还没用过):
12public
Field getField(String name);
public
Field[] getFields();
获得类的属性值:
Field类中的方法:
1public
Object get(Object obj);
使用示例:
123456TestEntity testEntity =
new
TestEntity();
Field[] fds = Class.forName(
"com.xyz.entity.TestEntity"
).getDeclaredFields();
for
(
int
i=
0
;i<fds.length;i++)
{
System.out.println(fds[i].get(testEntity));
}
三、在项目中的应用
如:java反射执行实体类中的set/get方法。例子:java反射执行pojo中的set/get方法
待续……
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏