加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

全面的Java开源Apache Commons 工具类介绍

发布时间:2019-05-07 17:33:32 所属栏目:移动互联 来源:javaGren
导读:前言 Apache Commons 工具类大家都有用过,但是可能缺乏系统学习,只用到了一小部分功能,无法发挥极限的价值,大白话说就是,一颗好白菜都让猪给拱了! 代码过多,手机观看效果不佳,建议收藏后在电脑上静悄悄地看。因内容健康,可大胆转发,即使未满十八
副标题[/!--empirenews.page--]

全面的Java开源Apache Commons 工具类介绍

前言

Apache Commons 工具类大家都有用过,但是可能缺乏系统学习,只用到了一小部分功能,无法发挥极限的价值,大白话说就是,一颗好白菜都让猪给拱了!

代码过多,手机观看效果不佳,建议收藏后在电脑上静悄悄地看。因内容健康,可大胆转发,即使未满十八岁,在没有家长陪同下也一样可以观看!

1、BeanUtils

提供了对于JavaBean进行各种操作, 比如对象,属性复制等等。

  1. //1、 克隆对象  
  2. // 新创建一个普通Java Bean,用来作为被克隆的对象  
  3.  public class Person {  
  4.  private String name = "";  
  5.  private String email = "";  
  6.  private int age;  
  7.  //省略 set,get方法  
  8.  }  
  9. // 再创建一个Test类,其中在main方法中代码如下: 
  10.  import java.lang.reflect.InvocationTargetException;  
  11.  import java.util.HashMap;  
  12.  import java.util.Map;  
  13.  import org.apache.commons.beanutils.BeanUtils;  
  14.  import org.apache.commons.beanutils.ConvertUtils;  
  15.  public class Test {  
  16.  /**  
  17.  * @param args  
  18.  */  
  19.  public static void main(String[] args) {  
  20.  Person person = new Person();  
  21.  person.setName("tom");  
  22.  person.setAge(21);  
  23.  try {  
  24.  //克隆  
  25.  Person person2 = (Person)BeanUtils.cloneBean(person);  
  26.  System.out.println(person2.getName()+">>"+person2.getAge());  
  27.  } catch (IllegalAccessException e) {  
  28.  e.printStackTrace();  
  29.  } catch (InstantiationException e) {  
  30.  e.printStackTrace();  
  31.  } catch (InvocationTargetException e) {  
  32.  e.printStackTrace();  
  33.  } catch (NoSuchMethodException e) {  
  34.  e.printStackTrace();  
  35.  }  
  36.  }  
  37.  }  
  38. // 原理也是通过Java的反射机制来做的。 
  39. // 2、 将一个Map对象转化为一个Bean  
  40. // 这个Map对象的key必须与Bean的属性相对应。 
  41.  Map map = new HashMap();  
  42.  map.put("name","tom");  
  43.  map.put("email","tom@");  
  44.  map.put("age","21");  
  45.  //将map转化为一个Person对象  
  46.  Person person = new Person();  
  47.  BeanUtils.populate(person,map);  
  48. // 通过上面的一行代码,此时person的属性就已经具有了上面所赋的值了。 
  49. // 将一个Bean转化为一个Map对象了,如下: 
  50.  Map map = BeanUtils.describe(person) 

2.Betwixt

XML与Java对象之间相互转换。

  1. //1、 将JavaBean转为XML内容  
  2. // 新创建一个Person类  
  3. public class Person{  
  4.  private String name;  
  5.  private int age;  
  6.  /** Need to allow bean to be created via reflection */  
  7.  public PersonBean() {  
  8.  }  
  9.  public PersonBean(String name, int age) {  
  10.  this.name = name;  
  11.  this.age = age;  
  12.  }  
  13.  //省略set, get方法  
  14.  public String toString() {  
  15.  return "PersonBean[name='" + name + "',age='" + age + "']";  
  16.  }  
  17. }  
  18. //再创建一个WriteApp类: 
  19. import java.io.StringWriter;  
  20. import org.apache.commons.betwixt.io.BeanWriter;  
  21. public class WriteApp {  
  22. /**  
  23. * 创建一个例子Bean,并将它转化为XML.  
  24. */  
  25. public static final void main(String [] args) throws Exception {  
  26.  // 先创建一个StringWriter,我们将把它写入为一个字符串  
  27.  StringWriter outputWriter = new StringWriter();  
  28.  // Betwixt在这里仅仅是将Bean写入为一个片断  
  29.  // 所以如果要想完整的XML内容,我们应该写入头格式  
  30.  outputWriter.write(“<?xml version=’1.0′ encoding=’UTF-8′ ?> 
  31. ”);  
  32.  // 创建一个BeanWriter,其将写入到我们预备的stream中  
  33.  BeanWriter beanWriter = new BeanWriter(outputWriter);  
  34.  // 配置betwixt  
  35.  // 更多详情请参考java docs 或最新的文档  
  36.  beanWriter.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);  
  37.  beanWriter.getBindingConfiguration().setMapIDs(false);  
  38.  beanWriter.enablePrettyPrint();  
  39.  // 如果这个地方不传入XML的根节点名,Betwixt将自己猜测是什么  
  40.  // 但是让我们将例子Bean名作为根节点吧  
  41.  beanWriter.write(“person”, new PersonBean(“John Smith”, 21));  
  42.  //输出结果  
  43.  System.out.println(outputWriter.toString());  
  44.  // Betwixt写的是片断而不是一个文档,所以不要自动的关闭掉writers或者streams,  
  45.  //但这里仅仅是一个例子,不会做更多事情,所以可以关掉  
  46.  outputWriter.close();  
  47.  }  
  48. }  
  49. //2、 将XML转化为JavaBean  
  50. import java.io.StringReader;  
  51. import org.apache.commons.betwixt.io.BeanReader;  
  52. public class ReadApp {  
  53. public static final void main(String args[]) throws Exception{  
  54.  // 先创建一个XML,由于这里仅是作为例子,所以我们硬编码了一段XML内容  
  55.  StringReader xmlReader = new StringReader(  
  56.  "<?xml version=’1.0′ encoding=’UTF-8′ ?> <person><age>25</age><name>James Smith</name></person>");  
  57.  //创建BeanReader  
  58.  BeanReader beanReader = new BeanReader();  
  59.  //配置reader  
  60.  beanReader.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);  
  61.  beanReader.getBindingConfiguration().setMapIDs(false);  
  62.  //注册beans,以便betwixt知道XML将要被转化为一个什么Bean  
  63.  beanReader.registerBeanClass("person", PersonBean.class);  
  64.  //现在我们对XML进行解析  
  65.  PersonBean person = (PersonBean) beanReader.parse(xmlReader);  
  66.  //输出结果  
  67.  System.out.println(person);  
  68.  }  

为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜! 关注我,私信回复我“资料”

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读