首页 / JAVA / 使用反射设置 java实体属性值
使用反射设置 java实体属性值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用反射设置 java实体属性值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2436字,纯文字阅读大概需要4分钟。
内容图文
![使用反射设置 java实体属性值](/upload/InfoBanner/zyjiaocheng/851/f7142cd96ff2431da56c374e875bb5ad.jpg)
/** * 功能描述:实体属性值设置 * @author wy */ public class ReflectionUtils { /** * 功能描述:设置实体属性 * 参数 : obj 实体对象 | attrName 属性字段名 | attrValue 属性字段值 */ public static void setBeanAttr(Object obj, String attrName, Object attrValue) { // 将属性名的首字母变为大写,为执行set/get方法做准备 String methodName = attrName.substring(0, 1).toUpperCase() + attrName.substring(1); Method setMethod = null; Method getMethod = null; try { getMethod = obj.getClass().getMethod("get" + methodName); setMethod = obj.getClass().getMethod("set" + methodName, getMethod.getReturnType()); if (setMethod == null) { setMethod = obj.getClass().getSuperclass().getMethod("set" + methodName, getMethod.getReturnType()); } if (setMethod != null) setMethod.invoke(obj, converseType(attrValue, getMethod.getReturnType())); } catch (Exception e) { e.printStackTrace(); } } /** * 功能描述:数据类型转换 * 参数 param 属性字段值 | paramClass 属性字段类型 */ public static Object converseType(Object param, Class<?> paramClass) { if("java.util.List".equals(paramClass.getName())){ return Arrays.asList(param); } //java.util.List java.util.Set // 如果是自定义类型 通过返回值类型 实例化此类 给实例赋值 然后将实例set给引用的对象 if(!isJavaClass(param.getClass())){ System.out.println(param.getClass().getSimpleName()+"---------ceshi--------------"); return param; } // 基本数据类型 String paramString = (String) param; if (String.class.equals(paramClass)) return paramString; if ((Boolean.TYPE.equals(paramClass)) || (Boolean.class.equals(paramClass))) return Boolean.valueOf(paramString); if ((Byte.TYPE.equals(paramClass)) || (Byte.class.equals(paramClass))) return Byte.valueOf(Byte.parseByte(paramString)); if ((Short.TYPE.equals(paramClass)) || (Short.class.equals(paramClass))) return Short.valueOf(paramString); if ((Integer.TYPE.equals(paramClass)) || (Integer.class.equals(paramClass))) return Integer.valueOf(Integer.parseInt(paramString)); if ((Long.TYPE.equals(paramClass)) || (Long.class.equals(paramClass))) return Long.valueOf(Long.parseLong(paramString)); if ((Float.TYPE.equals(paramClass)) || (Float.class.equals(paramClass))) return Float.valueOf(Float.parseFloat(paramString)); if ((Double.TYPE.equals(paramClass)) || (Double.class.equals(paramClass)) || (Number.class.equals(paramClass))) { return Double.valueOf(Double.parseDouble(paramString)); } return paramString; } public static boolean isJavaClass(Class<?> clz) { return clz != null && clz.getClassLoader() == null; } }
内容总结
以上是互联网集市为您收集整理的使用反射设置 java实体属性值全部内容,希望文章能够帮你解决使用反射设置 java实体属性值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。