利用反射获取java类属性并赋值
2017-11-06 18:47
351 查看
自己写的方法,通过传入Object类型的对象 来为自定义的java类赋值,返回值再进行类型转换。注意类型转换。
整个思想是通过类反射获取类字段数组,然后获取属性名,获取属性类型。循环比较,为不同类型的java类属性赋值
文章内容来源于本人通过网络各方知识的学习,理解,总结,编辑。
仅用于学习。有拷贝网络相同的代码,只声明代码通过运行测试的正确性。
整个思想是通过类反射获取类字段数组,然后获取属性名,获取属性类型。循环比较,为不同类型的java类属性赋值
public Object getProperty(Object obj)throws IllegalAccessException{ //利用反射获取类属性 Field[] field = obj.getClass().getDeclaredFields(); for (int i = 0; i < field.length; i++) { Field f = field[i]; f.setAccessible(true); // key:得到属性名 String key = f.getName(); //获取属性名 String name = field[i].getName(); name = name.substring(0, 1).toUpperCase() + name.substring(1); //获取属性类型 String type = field[i].getGenericType().toString(); Method method = null; try { try { if(type.equals("class java.lang.String")){ method = obj.getClass().getMethod("set"+name,String.class); //给对象的这个属性赋值 String类型 举例 此处赋值为空字符串 method.invoke(obj, ""); } if(type.equals("class java.lang.Integer")){ method = obj.getClass().getMethod("set"+name,Integer.class); //给对象的这个属性赋值 Integer类型 此处赋值为1 method.invoke(obj, 1); } if(type.equals("int")){ method = obj.getClass().getMethod("set"+name,int.class); //给对象的这个属性赋值 int类型 method.invoke(obj, 2); } //其他类型还未测试,所以没有写出 } catch (InvocationTargetException e) { e.printStackTrace(); } } catch (NoSuchMethodException e) { e.printStackTrace(); } } return obj; }
文章内容来源于本人通过网络各方知识的学习,理解,总结,编辑。
仅用于学习。有拷贝网络相同的代码,只声明代码通过运行测试的正确性。
相关文章推荐
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- Java利用反射获取object的属性和值代码示例
- java反射遍历实体类属性和类型,并赋值和获取值的简单方法
- java利用反射机制获取实体类属性自定义注解说明
- java利用反射获取类属性名,获取JavaBean属性名
- 利用java反射实现两个具有相同属性bean赋值
- 利用java反射实现两个具有相同属性bean赋值
- java反射动态给对象属性赋值,并获取属性值
- java反射遍历实体类属性和类型,并赋值和获取值
- java反射遍历实体类属性和类型,并赋值和获取值