`
starbhhc
  • 浏览: 658014 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

Map转换为Bean(Bean转换成Map)

 
阅读更多

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 之间的转换

    map 和 bean 之间的转换,可以利用反射的原理实现

    java Map转换成bean,利用java反射以及java和bean包

    具体到Java Map转换成Bean的过程,以下是一个简单的示例: ```java public class BeanUtils { public static &lt;T&gt; T mapToBean(Map, Object&gt; map, Class&lt;T&gt; beanClass) throws Exception { if (map == null || ...

    List转换为List

    本知识点重点讲解将List&lt;Bean&gt;转换为List&lt;Map&gt;的过程,这在进行Web开发、数据处理以及与前端交互等场景中非常常见。同时,也会涉及List转换为List及list转换为JsonArray的内容。 ### List&lt;Bean&gt;转换为List&lt;Map&gt; 在...

    java Map转Bean Bean转Map Map排序

    java Map转Bean Bean转Map Map排序

    java bean和map之间的互转

    反过来,从Map转换为Java Bean的过程可以使用Java的构造器或者无参构造器结合setter方法完成。以下是一个基本的实现: ```java import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTarget...

    Map和Bean灵活转换工具类

    `MapUtils`类通常用于将Map对象转换为Java Bean对象,这在我们需要将存储在Map中的键值对数据转化为具有明确属性的对象时非常有用。例如,假设我们有一个用户信息的Map,其中键是属性名(如"name","age"),值是...

    bean和map之间转换的帮助类

    主要实现bean和map之间的相互转换,主要提供两个方法beanToMap将bean转换成Map 和mapToBean 将Map转换成bean 每次下载都没有积分,不差积分的大神赞助点呗 写了这一小段代码,供新手学习,大神就别拍砖了 身板弱扛...

    Bean与Map转换工具类BeanMapConverter.java

    Bean与MAP间互转换的工具类。 1.将一个 Map 对象转化为一个 JavaBean,可指定BEAN的类型; 2.将一个 JavaBean 对象转化为一个 HashMap;

    Java Bean对象和Map相互转换.zip

    其次,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与bean之间互转”中,我们要探讨的是如何利用Java反射机制将Map对象转换为Java Bean对象,以及反过来,将Java Bean对象转换为Map对象。这个过程在数据处理和序列化中非常常见。 ...

    json转换为String/List/Map/Bean

    json转换为String/List/Map/Bean

    将list转换成JavaBean

    将list&lt;Map&gt;转换成JavaBean的工具类

    各种转换,xml,实体bean,动态bean,map等

    在实际应用中,比如“动态bean转换”,可能指的是将动态生成的bean对象转换为其他格式,如XML字符串或Map,以便进一步处理或存储。同时,“entryBean”可能是一个特定的Java Bean,用于封装Map的键值对,提供更面向...

    深度转换Bean<->Bean的Mapper

    对于复杂类型,可能需要递归调用`map()`方法进行嵌套Bean的转换。 标签“源码”提示我们,文章可能还讨论了BeanMapper的内部实现,包括但不限于以下关键点: 1. **属性匹配策略**:如何确定源Bean的属性应映射到...

    map与Javabean相互转换实例

    在项目开发中,我们可能会遇到需要将`Map`转换为`JavaBean`,或者反过来将`JavaBean`转换为`Map`的情况。反射机制在此过程中起到了关键作用。反射是Java提供的一种强大的工具,允许程序在运行时检查和操作类、接口、...

    xml和java bean互相转换工具包(简单易用)

    xml 与 bean 互相转换 工具类 1、bean类的属性需要遵守BEAN规范,否则 无法 读存BEAN值。 2、bean类的属性如果 是集合 只支持数组以及List、Map、Set。 3、bean类属性(boolean除外)前面两个字母要么全部小写,要么...

    Java_Bean2Map

    Java_Bean2Map,将实体类转化成对应的map的工具类

    Desktop_javaBean转换Map工具_

    描述中提到的“直接实现Bean转换为Map,方便快捷,粘贴即用”,意味着这个工具或代码段提供了简单的API,可以快速集成到项目中,无需复杂的配置或额外的库依赖。这通常涉及到自定义转换器或者利用现有的库如Apache ...

    java 读取csv 并转为Map<String,Object>

    通过引用【opevcsv】依赖,逐行读取数据 并转为Map,Object&gt;格式,后续可以通过BeanUtil.MaptoBean()方法将map转为你需要的bean对象;...通过此方法可以快速的将文件转换为程序可以操作的bean对象;

    MapStruct-简化不同类型bean之间映射的代码生成器

    MapStruct是一款强大的Java库,专为简化对象到对象映射(O-O Mapping)而设计,尤其是在处理不同类型的Bean之间转换时。它通过自动生成映射代码,极大地减少了手动编写转换逻辑的工作量,使得代码更加简洁、可维护。...

Global site tag (gtag.js) - Google Analytics