香雨站

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 95|回复: 0

如何利用Java反射机制生成实体类?

[复制链接]

2

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2022-9-22 15:32:20 | 显示全部楼层 |阅读模式
需求:利用Java反射机制生成实体类
障碍:无法通过Object获取变量名 伪代码如下;
或者请给出更好的解决方案;
/**
* 获取实体类
*
* @param object 实体类参数项
* @return 实体类
*/
protected T getEntity(T t, Object... object) {
    Class tClass = t.getClass();
    while (tClass != null) {
        Field[] declaredFields = tClass.getDeclaredFields();
        tClass = tClass.getSuperclass();
        for (Field field : declaredFields) {
            for (Object o : object) {
                Class fClass = field.getClass();
                if (fClass.isInstance(o)) {
                    try {
                        field.setAccessible(true);
                        if (o.getName().equals(field.getName())) {
                            field.set(field, o);
                        }
                    } catch (IllegalAccessException e) {
                        e.printStackTrace();
                    }

                }
            }
        }
    }
    return t;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|香雨站

GMT+8, 2025-3-15 06:04 , Processed in 0.234434 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表