首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 反射获取数据

Java 反射获取数据

作者头像
zucchiniy
发布2020-05-22 14:35:55
8830
发布2020-05-22 14:35:55
举报
文章被收录于专栏:洞明学问洞明学问

反射获取成员变量

使用 Sql2o 方法读取数据库的时候,发现表名类似,但是有一些差别,如果使用 select * 方式查询,需要针对对象声明多个内容,但是实际上用的都是一样的,所以想通过获取成员变量的名称来拼接成 select 后面的内容,经过尝试,发现可以用下面的方法获取:

public String allName(){
    String allName = "";
    Field[] fields = this.getClass().getDeclaredFields();
    for(Field field : fields){
        allName += field.getName() + ",";
    }
    return allName.substring(0, allName.length() -1);
}

这样之后,调用 allName() 方法就能直接获取对应的变量名称了。

反射获取父类实例化对象中的值

try {
    Field[] fields = super.getClass.getDeclaredFields();
    for (Field field : fields) {
        field.setAcessible(true);
        Method method = super.getClass().getDeclaredMethod("get" + upperHeadChar(field.getName()));
        Object obj = method.invoke(super);
        field.set(this, obj);
    }
} catch (NoSuchMethodException | IllegalAcessException | InvocationTargetException e){
    e.printStackTrace();
}

private static String upperHeadChar(String in){
    String head = in.substring(0,1);
    return head.toUpperCase() + in.substring(1);
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 反射获取成员变量
  • 反射获取父类实例化对象中的值
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档