Java中Object转Map类型,Map转Object类型
前⾔
在使⽤Java编程过程中,经常会遇到获取的数据为Object类型,但只是以这种⽅式传输,实质还是Map类型,此时就涉及到两种类型的相互转换。
强制转换
在类型转换⼯程中,常见的转换⽅式为强制转换。如((key),((key)等。但是如果接收的类型为Map,此时强
转(Map<String, Object>) obj则会报出警告。
治标不治本
很多⼈会使⽤@SuppressWarnings(“unchecked”)来解决编辑器中的警告,好看是好看了。但是这⽤来告诉编译器忽略警告,⽽警告却实实在在的存在。项⽬的风险还是存在。
⽅法⼀
可以使⽤flect.Field类完成Obj和Map之间的相互转换.
Object转Map类型
//Object转Map
public static Map<String, Object>getObjectToMap(Object obj)throws IllegalAccessException {
Map<String, Object> map =new HashMap<String, Object>();
Class<?> cla = Class();
Field[] fields = DeclaredFields();
for(Field field : fields){
field.setAccessible(true);
String keyName = Name();
Object value = (obj);
if(value == null)
value ="";
map.put(keyName, value);
}
return map;
}
Map转Object类型
//Map转Object
public static Object getMapToObject(Map<Object, Object> map, Class<?> cla)throws Exception {
if(map == null)
return null;
Object obj = wInstance();
Class<?> cla = Class();
Field[] fields = DeclaredFields();
for(Field field : fields){
int mod = Modifiers();
if(Modifier.isStatic(mod)|| Modifier.isFinal(mod)){
continue;
}
field.setAccessible(true);
Name())){
field.set(obj, (Name()));
}
}
return obj;
}
通过Field类进⾏数据类型的转换。
⽅法⼆
通过BeanUtils⼯具类进⾏转换
//1、map转换为object
public static Object mapToObject(Map<String, Object> map, Class<?> cla)
throws Exception {
if(map == null)
return null;
Object obj = wInstance();
org.apachemons.beanutils.BeanUtils.populate(obj, map);
return obj;
}
//2、object转换为map
public static Map<?,?>objectToMap(Object obj){
if(obj == null)
return null;
return new org.apachemons.beanutils.BeanMap(obj);
}object to
总结
最后,通过调⽤这两个⽅法就可以实现Object转Map类型,Map转Object类型。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论