类的属性和值的操作
/** * 给属性赋值 * @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; } }
初闻不知曲中意,再听已是曲中人,曲终思念今犹在,不见当年梦中人;
既然已成梦中人,何必再听曲中曲,曲总人散梦已醒,何处再寻梦中人;
既知曲人存于梦,何故执于取外人,不愿再做曲中人。