`
qinya06
  • 浏览: 595178 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ConvertUtils 的简单使用

阅读更多
package com.beanUtil;

public class TestConvertUtil extends org.apache.commons.beanutils.ConvertUtils {   
    
    //将object转化成int型   
    public static int intConvert(Object object){   
        String str = object==null?null:object.toString();   
        Object obj = org.apache.commons.beanutils.ConvertUtils.convert(str, Integer.class);   
        Integer i= (Integer)obj;   
        return i;   
    }   
    //将任意的Object转换成string   
    public static String stringConvert(Object object){   
        Object obj = org.apache.commons.beanutils.ConvertUtils.convert(object);   
        String string = (String) obj;   
        return string;   
    }   
    public static boolean booleanConvert(Object object){   
        String str = object == null?null:object.toString();   
        Object obj = org.apache.commons.beanutils.ConvertUtils.convert(str, Boolean.class);   
        boolean b =(Boolean)obj;   
        return b;   
    }   
       
    public static void main(String[] arg) {   
        System.out.println(intConvert("123"));   
        System.out.println(stringConvert(456.2));   
        System.out.println(booleanConvert("true"));   
    }   
} 

======================================================================================
使用PropertyUtils 将javaBean转化成Map
需要导入commons-beanutils.jar   和 commons-logging.jar

下面是两个javaBean

Author.java

package com.beanUtil;

public class Author {

private String name;

public Author() {
   super();
}

public String getName() {
   return name;
}

public void setName(String name) {
   this.name = name;
}

}

Book.java

package com.beanUtil;

public class Book {

private String name;
private Author author;

public String getName() {
   return name;
}

public void setName(String name) {
   this.name = name;
}

public Author getAuthor() {
   return author;
}

public void setAuthor(Author author) {
   this.author = author;
}

}
Bean2Map.java

package com.beanUtil;

import java.util.Map;
import java.lang.reflect.InvocationTargetException;
import org.apache.commons.beanutils.PropertyUtils;


public class Bean2Map {

@SuppressWarnings("unchecked")
public static void main(String[] args) {

   Author author = new Author();   
   author.setName("wenliang.li");   
             
   Book book = new Book();   
   book.setName("pro spring");   
   book.setAuthor(author);   
         
   // 取得book中的所有可读属性,返回到map中   
   Map<String,Book> bookMap = null;
   Map<String,Author> authorMap = null;
   try {
    bookMap = PropertyUtils.describe(book);
    // Book类中包含一个Author类型的属性   
    // 取bookMap中的author bean,并将其所有可读属性返回到authorMap中   
    authorMap = PropertyUtils.describe(bookMap.get("author"));   
         
   } catch (IllegalAccessException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (InvocationTargetException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   } catch (NoSuchMethodException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }   
  
   //输出
   //Book Name: pro spring
   //Author Name: wenliang.li 
   System.out.println("Book Name: " + bookMap.get("name"));   
   System.out.println("Author Name: " + authorMap.get("name")); 
}
}

==============================================================================================================
LazyDynaBean动态加载属性类,配合LazyDynaClass一起使用

//用法1  
         
                   DynaProperty[] props=new DynaProperty[]{   
        new DynaProperty("name",String.class),   
        new DynaProperty("age",Integer.class),   
        new DynaProperty("birth",Date.class)   
};   
LazyDynaClass dynaClass=new LazyDynaClass("user",LazyDynaBean.class,props);   
try {   
    LazyDynaBean dynaBean = (LazyDynaBean) dynaClass.newInstance();   
       
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");   
    dynaBean.set("name", "章子怡");   
    dynaBean.set("age", 16);   
    dynaBean.set("birth", sdf.parse("1986-05-01"));   
    StringBuilder sb=new StringBuilder();   
    sb.append("name:").append(dynaBean.get("name"))   
    .append(",age:").append(dynaBean.get("age"))   
    .append(",birth:").append(sdf.format(dynaBean.get("birth")));   
    System.out.println(sb.toString());   
       
    dynaBean.set("email", "yinhe2726@163.com");   
    System.out.println(dynaBean.get("email"));   
} catch (ParseException e) {   
    // TODO Auto-generated catch block   
    e.printStackTrace();   
} catch (IllegalAccessException e) {   
    // TODO Auto-generated catch block   
    e.printStackTrace();   
} catch (InstantiationException e) {   
    // TODO Auto-generated catch block   
    e.printStackTrace();   
}   
  
//用法2   
DynaBean bean=new LazyDynaBean();   
bean.set("name", "孙晓磊");   
System.out.println(bean.get("name"));   
MutableDynaClass dc=(MutableDynaClass)bean.getDynaClass(); //获取可以动态添加属性的DynaClass类   
  
System.out.println("----开始测试数组属性----");   
dc.add("indexProp", int[].class); //添加整型数组属性   
bean.set("indexProp", 0, 1); //给数组属性添加值   
bean.set("indexProp", 1, 2);   
int[] indexProp=(int[]) bean.get("indexProp");   
System.out.println(indexProp[1]);   
  
System.out.println("----开始测试LIST属性----");   
bean.set("indexProp2", 0, "str1"); //直接添加属性,此时属性的类型是LIST或数组,此处是LIST   
bean.set("indexProp2", 1, "str2");   
List list=(List) bean.get("indexProp2");   
System.out.println(list.get(0));   
  
System.out.println("----开始测试MAP属性----");   
bean.set("mapProp","key1","value1"); //直接添加键值对,默认属性类型是MAP   
Map map=(Map)bean.get("mapProp");   
System.out.println(map.get("key1"));   
  
dc.add("mapProp2", HashMap.class); //或者先设置属性类型,再添加   
bean.set("mapProp2","mapProp2-key1","mapProp2-value1");   
Map map2=(Map)bean.get("mapProp2");   
System.out.println(map2.get("mapProp2-key1"));  
分享到:
评论

相关推荐

    前台字符串赋值给JavaBean属性自动类型转换

    总的来说,`BeanUtils`适用于直接的JavaBean属性复制,`Converter`适用于在Spring环境中进行自定义类型的转换,而`ConvertUtils`则更适用于简单的类型转换。在实际开发中,根据需求选择合适的方法,可以提高代码的...

    JavaBean 转换为xml的三种方式比较

    这种方法的优点是简单易用,但缺点是功能相对有限,不支持自定义的XML格式,如命名空间、属性排序等。以下是一个简单的示例: ```java XMLEncoder encoder = new XMLEncoder(new FileOutputStream("output.xml"))...

    json、javaBean、xml互转的几种工具介绍

    虽然它主要用于Bean之间的属性复制,但它可以通过`ConvertUtils`类进行简单的类型转换,但不直接支持JSON或XML。 6. **Dozer** Dozer是一个Java Bean到Java Bean映射库,它也可以间接帮助进行JSON和XML的转换。...

    javaweb编程中常见的异常及处理方法.doc

    下面是一个简单的`UtilDateConverter`示例: ```java package yg.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import org.apache.commons.beanutils....

    java将String字符串转换为List&lt;Long&gt;类型实例方法

    在 Java 中,将 List 转换为 String 输出过程最简单的方法之一就是使用 List 里面的 `toString` 方法。下面是一个示例代码: ```java private void OutString() { List&lt;Integer&gt; integerList = Arrays.asList(1, 2...

    commons-beanutils所有版本(1.0-1.9.2).zip

    8. **替代品和扩展**: 随着Java生态的发展,其他库如Dozer、ModelMapper等提供了更高级的属性映射和转换功能,但BeanUtils仍然因其简单易用和广泛支持而在许多项目中被使用。 通过下载并查看这个压缩包中的所有版本...

    commons-lang-2.4.rar代码及jar文件

    4. **类型转换**:`TypeConversionUtils`和`ConvertUtils`类支持不同类型的转换,使得在不同类型之间进行转换变得更加简单。 5. **枚举支持**:在Java 5之前,`EnumUtils`为枚举提供了支持,虽然Java 5之后引入了...

    commons-lang3-3.9-tar-压缩包.zip

    6. **类型转换**:TypeConverter接口和ConvertUtils子类提供了对象之间的类型转换,使得不同数据类型之间的转换变得简单。 7. **异常处理**:ExceptionUtils可以捕获、包装和处理异常,提供了一种更灵活的异常处理...

    Java工具类之Apache的Commons Lang和BeanUtils

    Apache Commons BeanUtils库则专注于JavaBeans的属性操作,它提供了一种简单的方式来处理Java对象的属性,实现了属性的设置和获取,以及对象之间的属性复制。以下是一些BeanUtils库的关键知识点: 1. **属性拷贝**...

    Jakarta+Commons中文介绍

    **Validate** 类提供了一种简单的方式来验证方法参数的有效性,防止程序出现NullPointerException等异常。 ##### WordUtils **WordUtils** 类提供了处理单词的方法,如首字母大写、句子格式化等。 ##### commons....

    BeanUtil_Jar包

    这个“BeanUtil_Jar包”正是这样一个实用的工具集,它包含了丰富的功能,使得处理JavaBean的工作变得简单而高效。本文将深入探讨BeanUtil_Jar包的核心特性和使用方法,帮助开发者更好地理解和应用这个经典库。 首先...

    Java工具类BeanUtils库介绍及实例详解

    BeanUtils工具的使用方法非常简单,首先需要导入commons-beanutils-1.9.2.jar和commons-logging.jar两个jar包,然后可以使用BeanUtils工具提供的几个方法,例如: * `BeanUtils.setProperty(bean, name, value)`: ...

    commons-util:一些有用的Java实用程序

    ByteUtils:简单的编码和解码。 CharsetUtils:一些charset实用程序。 ConvertUtils:一些对话实用程序。 DateFormat:线程安全的日期格式化程序。 EncryptionUtils:加密和解密实用程序。 InetAddressUtils:...

    apche最全commons包搭建项目必备

    使用 FileUpload 可以轻松地将文件上传功能集成到 Web 应用中。 - `FileItem` 类表示上传的文件或表单字段,提供了读取和写入数据的方法。 - `DiskFileItemFactory` 和 `ServletFileUpload` 用于创建和解析文件...

    beanutils源码

    3. ConvertUtils:这个组件负责将值从一种类型转换为另一种类型,以便在不同类型的属性之间进行赋值。例如,它能够自动将字符串转换为整数或日期等。 4. CopyProperties:BeanUtils提供了一个`copyProperties()`...

    Apache commons jar包常用类讲解--Jakarta Commons 学习.pdf

    - **SimpleDateFormat**:提供了一种简单的日期格式化方式。 - **StopWatch**:提供了一个简单的计时器。 ##### 1.5. commons.lang.enums包 提供了枚举类型的处理方法。 ##### 1.6. commons.lang.exception包 ...

    java源码包-ostermillerutils:com.ostermiller.util软件包是由StephenOstermiller维护的

    - `StringUtil`:提供了诸如字符串分割、替换、比较、格式化等操作,使得处理字符串变得更加简单。 - `CharSequenceUtils`:扩展了对CharSequence接口的支持,如查找、替换、截取等,增强了对非String对象的操作...

    Android开发人员不得不收集的代码

    转换相关→ConvertUtils.java→Test 每1个byte转为2个hex字符 bytes2HexString 每2个hex字符转为1个byte hexString2Bytes charArr转byteArr chars2Bytes byteArr转charArr bytes2Chars 设备相关→DeviceUtils.java ...

Global site tag (gtag.js) - Google Analytics