Java里面,反射父类里面数字类型字段,怎么set值,我的做法是这样:
/**
* TODO 直接设置对象属性值, 忽略private/protected 修饰符, 也不经过setter
* @author E.FLY
* @date 2013-12-7
* @time 下午03:55:05
* @param object 子类对象
* @param fieldName 父类中的属性名
* @param value 将要设置的值
*/
public static void setFieldValue(Object object, String fieldName, Object value){
Field field = getDeclaredField(object, fieldName);
//抑制Java对方法进行检查,主要是针对私有方法而言
field.setAccessible(true); try {
field.set(object, value);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
/**
* TODO 循环向上转型,获取对象的DeclaredMethod
* @author E.FLY
* @date 2013-12-7
* @time 下午03:39:45
* @param object 子类对象
* @param methodName 父类中的方法名
* @return 父类中的方法对象
*/
private static Field getDeclaredField(Object object, String fieldName){
Field field = null;
Class<?> clazz = object.getClass();
for(; clazz != Object.class; clazz = clazz.getSuperclass()) {
try {
return field = clazz.getDeclaredField(fieldName);
} catch (Exception e) {
//这里甚么都不要做!并且这里的异常必须这样写,不能抛出去
//如果这里的异常打印或者往外抛,则就不会执行
//clazz = clazz.getSuperclass();//最后就不会进入到父类中了
}
}
return null;
} 直接调用:setFieldValue(obj, name, value);方法,可是除了数字类型的不能set值成功,String类型的可以哦。
原理一样,用method.invoke(object, parameters);这种方式也徒劳
45度C 10:12:53
主要是设置父类的数字类型值不能

Java里面,反射父类里面数字类型字段,怎么set值的更多相关文章

  1. c# 反射得到实体类的字段名称和值,DataTable转List<T>

    /// <summary> /// 反射得到实体类的字段名称和值 /// var dict = GetProperties(model); /// </summary> /// ...

  2. 【java】jackson 中JsonFormat date类型字段的使用

    为了便于date类型字段的序列化和反序列化,需要在数据结构的date类型的字段上用JsonFormat注解进行注解具体格式如下 @JsonFormat(pattern = "yyyy-MM- ...

  3. phpexcel 导出数字类型字段导出错误或者为空解决办法 (原)

    跟我们写excel时候一样,手机号或者较长的数字类型,或被科学计数法和谐,但是如果类型是字符串,长一些的数字就不受影响了. 解决导出被和谐的最简单易懂的,就是最前面拼接‘ ’ 空格,或者字母符号之类, ...

  4. MySQL 日期类型及默认设置 (除timestamp类型外,系统不支持其它时间类型字段设置默认值)

    MySQL 日期类型及默认设置 之前在用 MySQL 新建 table,创建日期类型列时遇到了一些问题,现在整理下来以供参考. MySQL 的日期类型如何设置当前时间为其默认值? 答:请使用 time ...

  5. Java 存储和读取 oracle CLOB 类型字段的实用方法

    import java.io.BufferedReader; import java.io.IOException; import java.io.Reader; import java.io.Str ...

  6. DataTable 数据导入MS ACCESS 数据库中 数字类型字段为空的解决办法

    string strSql = "insert into GongCheng (GCSY,GCBH,GCBHOLD,GCMC,GCKCJD,GCJSDW,GCSJDW,GCKCDW,GCSG ...

  7. Salesforce中所有常用类型字段的取值与赋值

    Salesforce中所有常用字段类型的定义以及如何用代码进行取值和赋值: Field Type的定义: http://www.salesforce.com/us/developer/docs/api ...

  8. 使用C#的反射机制读取类的字段名称及值

    using System.Windows.Forms;using System.Reflection; foreach (FieldInfo fi in typeof(SystemInformatio ...

  9. [转]Java虚拟机是如何判断变量类型的

    [原文]https://www.toutiao.com/i6591766777745637891/ 概述 众所周知,Java支持平台无关性.安全性和网络移动性.而Java平台由Java虚拟机和Java ...

随机推荐

  1. 上标、下标~不常用的 html 标签

    <sup>上标 <sub>下标 <small>小号字 <del> 删除线 ======> 对应的 js stringObj.sup()  上标 s ...

  2. 实现View的移动的方法总结

    btw:这篇博客的内容其实算是<Android开发艺术探索>的一篇读书笔记,在书本的知识上加了一点自己的理解,并用自己的话描述出来.<Android开发艺术探索>是一本不错的书 ...

  3. zencart産品描述加上錨文本

    首先,函數會遍曆整段描述,假如一段描述裏面有Hermes wallets這個關鍵詞,那麽函數就會對這個關鍵詞加上鏈接,至于鏈接到哪裏,上面數組裏面有,隻要把數組裏面的内容替換你想要的就可以. 那麽在z ...

  4. 51nod 1181 质数中的质数(质数筛法)

    题目链接:51nod 1181 质数中的质数(质数筛法) #include<cstdio> #include<cmath> #include<cstring> #i ...

  5. php知识案列分享

    今天再跟大家分享一下,以下案列. 使用array_flip函数生成随机数,可以去掉重复值. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 < ...

  6. 节约内存:Instagram的Redis实践(转)

    一.问题:     数据库表数据量极大(千万条),要求让服务器更加快速地响应用户的需求. 二.解决方案:      1.通过高速服务器Cache缓存数据库数据      2.内存数据库 三.主流解Ca ...

  7. 通过pip安装模块

    环境:ubuntu,python2/3 命令: pip3 install ipy # 通过pip3给python3.x安装ipypip3 install --upgrade pip # 升级pippi ...

  8. 不一样的Android选择器,简单方便,地址日期时间都好用!

    前言 Android开发有不少情况下会用到Picker,例如选择 地址.日期.时间. 原生Picker和仿iOS的Picker都是上下或左右滑动到固定区域来选择选项: 显示数量少,如果当前选项距离需要 ...

  9. Java系列笔记(2) - Java RTTI和反射机制

    目录 前言 传统的RTTI 反射 反射的实现方式 反射的性能 反射与设计模式 前言 并不是所有的Class都能在编译时明确,因此在某些情况下需要在运行时再发现和确定类型信息(比如:基于构建编程,),这 ...

  10. java JVM

    1.ClassLoader(类加载器) 1.加载:查找并加载类的二进制数据 2.连接 —验证:确保被加载的类的正确性(防止不是通过java命令生成的class文件被加载) —准备:为类的静态变量分配内 ...