BeanUtil.java
import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutil.BeanUtils;
import org.apache.commons.beanutil.Conversionexception;
import org.apache.commons.beanutil.ConvertUtils;
import org.apache.commons.beanutil.Converter;
/**
*class和Map互转
*/
public class BeanUtil{
//包含有日期
//Map转换为bean,
//理由org.apache.commons.beanutils 工具类实现Map-->Bean
public static void transMap2Bean(Map<String,object> map, object obj,final String fomartDateStr){
if(map==null || obj==null){
return;
}
ConverUtils.register(new Converter(){
@override
public object convert(Class type,object value){
if(value==null || value.equals(''))
return null;
if(!(value instanceof String)){
System.out.println("不是日期类型");
throw new Convertsionexception("不是日期类型");
}
String str=(String)value;
SimpleDateFormat df=new SimpleDateFormat (fomartDateStr);
try{
return df.parse(str);
}catch(ParseException e){
throw new Runtimeexception(e);//异常链不能断
}
}
},Date.class);
try{
BeanUtils.populate(pbj,map);
}catch(Exception e){
System.out.println("transMap2bean2 Error:==="+e);
}
}
//没有日期
public static void transMap2Bean(Map<String,object> map, object obj){
if(map==null || obj==null){
return;
}
try{
BeanUtils.populate(obj,map);
}catch(Exception e){
System.out.println("transMap2Bean error====="+e);
}
}
//Bean转换成Map,
//利用Introsperctor和propertyDescriptor,将Bean转换成Map
public static Map(String,object)transBeanMap(Object obj){
if(obj==null){
return null;
}
Map <String,object> map=new HashMap<String,object>();
try{
BeanInfo beaninfo=Introspector.getbeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors=beanInfo.getPropertyDescriptors();
for(PropertyDescriptor property: propertyDescriptors){
String key=property.getName();
//过滤class属性
if(!key.equals("class")){
//得到Property对应的getter方法
Method getter=property.getReadMethod();
object value= getter.invoke(obj);
if(value==null){
map.put(key,null);
}else{
map.put(key,value);
}
}
}
}catch(Exception e){
System.out.println("transBeanMap error====="+e);
}
return map;
}
//wyf实现
//Bean转换成Null,返回为String
//利用Introsperctor和propertyDescriptor,将Bean转换成Null
public static String transBeanMap(Object obj){
double num=0;
if(obj==null){
return null;
}
Map <String,object> map=new HashMap<String,object>();
try{
BeanInfo beaninfo=Introspector.getbeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors=beanInfo.getPropertyDescriptors();
for(PropertyDescriptor property: propertyDescriptors){
String key=property.getName();
//过滤class属性
if(!key.equals("class")){
//得到Property对应的getter方法
Method getter=property.getReadMethod();
object value= getter.invoke(obj);
if(value==null || value=""){//判断是否字符串
num++;
}else if(value.equals(0)){//判断是否数字
if(key.equals("id")){//判断是否主键,还可以判断其他不需要的属性
}else{
num++;
}
}else{}
}
}
}catch(Exception e){
System.out.println("transBeanMap error====="+e);
}
//算法start
double p3=num/100;
NumberFormat nf=NumberFormat.getPercentInstance();
nf.setMinimumFractionDigits(0);
String beantiful=nf.format(p3);
return beantiful;
}
//wyf实现
//Bean转换成Null,返回为int
//利用Introsperctor和propertyDescriptor,将Bean转换成Null
public static int transBeanMap(Object obj){
int num=0;
if(obj==null){
return num;
}
Map <String,object> map=new HashMap<String,object>();
try{
BeanInfo beaninfo=Introspector.getbeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors=beanInfo.getPropertyDescriptors();
for(PropertyDescriptor property: propertyDescriptors){
String key=property.getName();
//过滤class属性
if(!key.equals("class")){
//得到Property对应的getter方法
Method getter=property.getReadMethod();
object value= getter.invoke(obj);
if(value==null || value=""){//判断是否字符串
num++;
}else if(value.equals(0)){//判断是否数字
if(key.equals("id")){//判断是否主键,还可以判断其他不需要的属性
}else{
num++;
}
}else{}
}
}
}catch(Exception e){
System.out.println("transBeanMap error====="+e);
}
return beantiful;
}
public static void main(String[] args){
//wyf
Bean bean=new Bean();
transBeanMap(bean);
//验证
Bean vo=new Bean();
final String fomart="yyyy-MM-dd";
Map map=new HashMap();
map.put("a",1);
map.put("fountDate","1988-12-12");
map.put("loginAccount","star");
transMap2Ban(map,vo,fomart);
System.out.println(vo.getfountDate());
System.out.println(vo.getloginAccount());
}
}
UserManageUtils.java 工具服务类
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
public class UserManageUtils{
//获取系统当前时间
public static Date getNowDate(){
Date currentTime =new Date();
return currentTime ;
}
//获取当前格式的日期类型系统时间执行格式化日期,返回日期
public static Date getNowDateTime(String formatStr)throws ParseException{
Date currentTime =UserManageUtils.getNowDate();
SimpleDateFormat formater=new SimpleDateFormat (formatStr);
String dateString=formater.format(currentTime );
return formater.parse(dateString);
}
//获取当前系统时间格式化,返回String
public static Date getStringDateTime(String formatStr)throws ParseException{
Date currentTime =UserManageUtils.getNowDate();
SimpleDateFormat formater=new SimpleDateFormat (formatStr);
String dateString=formater.format(currentTime );
return dateString;
}
//将日期类型转换为格式化字符串,返回String
public static Date getParseStrDate(String formatStr)throws ParseException{
SimpleDateFormat formater=new SimpleDateFormat (formatStr);
String dateString=formater.format(currentTime );
return dateString;
}
//将字符串类型时间转换为格式日期类型
public static Date getParseStrDate(String cuttentTime.String formatStr)throws ParseException{
SimpleDateFormat formater=new SimpleDateFormat (formatStr);
Date date=formater.parse(currentTime );
return date;
}
//将vo转换为map形式
public static Map(Stirng,object) parseObjectBeanToMap(object objectBean){
if(objectBean ==null){
//异常
}
//进行转换,调用BeanUtil.java
return BeanUtil.transBean2Map(objectBean );
}
//将map转换为vo形式
public static parseMapToobjectBean(Map<Stirng,object> map,object objectBean,String formartDateStr) {
//进行转换,调用BeanUtil.java
BeanUtil.transBean2Map(map,objectBean,formartDateStr);
return objectBean;
}
//Map是否为null
public static int parseObjectToNull(object objectBean){
//进行转换,调用BeanUtil.java
return BeanUtil.transBean2Map(objectBean);
}
}
相关推荐
map 和 bean 之间的转换,可以利用反射的原理实现
具体到Java Map转换成Bean的过程,以下是一个简单的示例: ```java public class BeanUtils { public static <T> T mapToBean(Map, Object> map, Class<T> beanClass) throws Exception { if (map == null || ...
本知识点重点讲解将List<Bean>转换为List<Map>的过程,这在进行Web开发、数据处理以及与前端交互等场景中非常常见。同时,也会涉及List转换为List及list转换为JsonArray的内容。 ### List<Bean>转换为List<Map> 在...
java Map转Bean Bean转Map Map排序
反过来,从Map转换为Java Bean的过程可以使用Java的构造器或者无参构造器结合setter方法完成。以下是一个基本的实现: ```java import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTarget...
`MapUtils`类通常用于将Map对象转换为Java Bean对象,这在我们需要将存储在Map中的键值对数据转化为具有明确属性的对象时非常有用。例如,假设我们有一个用户信息的Map,其中键是属性名(如"name","age"),值是...
主要实现bean和map之间的相互转换,主要提供两个方法beanToMap将bean转换成Map 和mapToBean 将Map转换成bean 每次下载都没有积分,不差积分的大神赞助点呗 写了这一小段代码,供新手学习,大神就别拍砖了 身板弱扛...
Bean与MAP间互转换的工具类。 1.将一个 Map 对象转化为一个 JavaBean,可指定BEAN的类型; 2.将一个 JavaBean 对象转化为一个 HashMap;
其次,BeanMap是Apache Commons Lang库中的一个工具类,它允许我们把Java Bean对象直接转换为Map,同时也支持从Map创建Java Bean。 3. **BeanMap进行Java Bean到Map的转换**: ```java import org.apache.commons...
在给定的标题“通过java反射实现map与bean之间互转”中,我们要探讨的是如何利用Java反射机制将Map对象转换为Java Bean对象,以及反过来,将Java Bean对象转换为Map对象。这个过程在数据处理和序列化中非常常见。 ...
json转换为String/List/Map/Bean
将list<Map>转换成JavaBean的工具类
在实际应用中,比如“动态bean转换”,可能指的是将动态生成的bean对象转换为其他格式,如XML字符串或Map,以便进一步处理或存储。同时,“entryBean”可能是一个特定的Java Bean,用于封装Map的键值对,提供更面向...
对于复杂类型,可能需要递归调用`map()`方法进行嵌套Bean的转换。 标签“源码”提示我们,文章可能还讨论了BeanMapper的内部实现,包括但不限于以下关键点: 1. **属性匹配策略**:如何确定源Bean的属性应映射到...
在项目开发中,我们可能会遇到需要将`Map`转换为`JavaBean`,或者反过来将`JavaBean`转换为`Map`的情况。反射机制在此过程中起到了关键作用。反射是Java提供的一种强大的工具,允许程序在运行时检查和操作类、接口、...
xml 与 bean 互相转换 工具类 1、bean类的属性需要遵守BEAN规范,否则 无法 读存BEAN值。 2、bean类的属性如果 是集合 只支持数组以及List、Map、Set。 3、bean类属性(boolean除外)前面两个字母要么全部小写,要么...
Java_Bean2Map,将实体类转化成对应的map的工具类
描述中提到的“直接实现Bean转换为Map,方便快捷,粘贴即用”,意味着这个工具或代码段提供了简单的API,可以快速集成到项目中,无需复杂的配置或额外的库依赖。这通常涉及到自定义转换器或者利用现有的库如Apache ...
MapStruct是一款强大的Java库,专为简化对象到对象映射(O-O Mapping)而设计,尤其是在处理不同类型的Bean之间转换时。它通过自动生成映射代码,极大地减少了手动编写转换逻辑的工作量,使得代码更加简洁、可维护。...
通过引用【opevcsv】依赖,逐行读取数据 并转为Map,Object>格式,后续可以通过BeanUtil.MaptoBean()方法将map转为你需要的bean对象;...通过此方法可以快速的将文件转换为程序可以操作的bean对象;