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

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

发布时间:2019-05-09 10:31:42 所属栏目:移动互联 来源: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.  }  

为什么某些人会一向比你优越,是由于他自己就很优越还一向在一连全力变得更优越,而你是不是还在满意于近况心田在窃喜! 存眷我,私信回覆我“资料”

(编辑:湖南网)

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

热点阅读