Java反射

一、反射机制有关的类大多在java.lang.reflect包中。

常用类:

    java.lang.Class<T>  类类型

    java.lang.reflect.Method  方法类型

    java.lang.reflect.Field  字段类型

二、常用方法:

获得类的类类型:

1
2
Class cla1=String.class;
Class cla2=UserEntity.class;

1
2
3
4
5
try {
    Class cla=Class.forName("UserEntity");
} catch (ClassNotFoundException e1) {
    e1.printStackTrace();
}

1
Class   clazz   =    obj.getClass ();

根据类名创建类的对象:

1
2
String   className  =    "com.xyz.entity.Car ";
Object   obj    =    Class.forName (className ).newInstance();
1
获取方法:
1
使用Class类中的方法:
1
2
public Method getMethod(String name,
                        Class<?>... parameterTypes);//获取类的指定方法。第一个参数:方法名;第二个参数:方法中参数的类型
1
public Method[] getMethods();//获取类的全部方法

示例:

1
Method  method  =    clazz.getMethod("start" );

执行方法:

1
method.invoke(obj);

获得类中的字段:

1
2
public Field getDeclaredField(String name);
public Field[] getDeclaredFields();
1
//Field类中
1
String fieldName=field.getName();//获得字段的属性名
1
Class fieldType=field.getType();//获得字段的属性值
1
String typeStr=fieldType.toString();//结果:class java.lang.String

还有(下面这两个还没用过):

1
2
public Field getField(String name);
public Field[] getFields();

获得类的属性值:

Field类中的方法:

1
public Object get(Object obj);

使用示例:

1
2
3
4
5
6
TestEntity 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方法  

待续……

posted @   夏天的尾巴%  阅读(212)  评论(0编辑  收藏  举报
编辑推荐:
· 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的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示