概述
/** * 给属性赋值 * @param sum */ public void setFieldValue(CsFsessum sum) { String[] fieldNames = getFiledName(sum); for(int j=0 ; j<fieldNames.length ; j++){ //遍历所有属性 String name = fieldNames[j]; //获取属性的名字 if(name.startsWith("timeSt")) { setFieldValueByName(sum, name, 0l); } } } /** * 获取属性名数组 * */ private static String[] getFiledName(Object o){ Field[] fields=o.getClass().getDeclaredFields(); String[] fieldNames=new String[fields.length]; for(int i=0;i<fields.length;i++){ fieldNames[i]=fields[i].getName(); } return fieldNames; } //通过属性名给属性赋值 private void setFieldValueByName(Object obj, String fieldName, Object value){ try { // 获取obj类的字节文件对象 Class c = obj.getClass(); // 获取该类的成员变量 Field f = c.getDeclaredField(fieldName); // 取消语言访问检查 f.setAccessible(true); // 给变量赋值 f.set(obj, value); } catch (Exception e) { logger.info("给对象字段名赋值出错 { }",e.getMessage()); } } /* 根据属性名获取属性值 * */ private static Object getFieldValueByName(String fieldName, Object o) { try { String firstLetter = fieldName.substring(0, 1).toUpperCase(); String getter = "get" + firstLetter + fieldName.substring(1); Method method = o.getClass().getMethod(getter, new Class[] {}); Object value = method.invoke(o, new Object[] {}); return value; } catch (Exception e) { return null; } }
转载于:https://www.cnblogs.com/tang-guo/p/11106740.html
最后
以上就是飞快曲奇为你收集整理的类的属性和值的操作的全部内容,希望文章能够帮你解决类的属性和值的操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复