| 副标题[/!--empirenews.page--] 
 前言Apache Commons 工具类大家都有用过,但是可能缺乏系统学习,只用到了一小部分功能,无法发挥极限的价值,大白话说就是,一颗好白菜都让猪给拱了! 代码过多,手机观看效果不佳,建议收藏后在电脑上静悄悄地看。因内容健康,可大胆转发,即使未满十八岁,在没有家长陪同下也一样可以观看! 1、BeanUtils提供了对于JavaBean进行各种操作, 比如对象,属性复制等等。 //1、 克隆对象  // 新创建一个普通Java Bean,用来作为被克隆的对象   public class Person {   private String name = "";   private String email = "";   private int age;   //省略 set,get方法   }  // 再创建一个Test类,其中在main方法中代码如下:  import java.lang.reflect.InvocationTargetException;   import java.util.HashMap;   import java.util.Map;   import org.apache.commons.beanutils.BeanUtils;   import org.apache.commons.beanutils.ConvertUtils;   public class Test {   /**   * @param args   */   public static void main(String[] args) {   Person person = new Person();   person.setName("tom");   person.setAge(21);   try {   //克隆   Person person2 = (Person)BeanUtils.cloneBean(person);   System.out.println(person2.getName()+">>"+person2.getAge());   } catch (IllegalAccessException e) {   e.printStackTrace();   } catch (InstantiationException e) {   e.printStackTrace();   } catch (InvocationTargetException e) {   e.printStackTrace();   } catch (NoSuchMethodException e) {   e.printStackTrace();   }   }   }  // 原理也是通过Java的反射机制来做的。 // 2、 将一个Map对象转化为一个Bean  // 这个Map对象的key必须与Bean的属性相对应。  Map map = new HashMap();   map.put("name","tom");   map.put("email","tom@");   map.put("age","21");   //将map转化为一个Person对象   Person person = new Person();   BeanUtils.populate(person,map);  // 通过上面的一行代码,此时person的属性就已经具有了上面所赋的值了。 // 将一个Bean转化为一个Map对象了,如下:  Map map = BeanUtils.describe(person) 
 2.BetwixtXML与Java对象之间相互转换。 //1、 将JavaBean转为XML内容  // 新创建一个Person类  public class Person{   private String name;   private int age;   /** Need to allow bean to be created via reflection */   public PersonBean() {   }   public PersonBean(String name, int age) {   this.name = name;   this.age = age;   }   //省略set, get方法   public String toString() {   return "PersonBean[name='" + name + "',age='" + age + "']";   }  }  //再创建一个WriteApp类: import java.io.StringWriter;  import org.apache.commons.betwixt.io.BeanWriter;  public class WriteApp {  /**  * 创建一个例子Bean,并将它转化为XML.  */  public static final void main(String [] args) throws Exception {   // 先创建一个StringWriter,我们将把它写入为一个字符串   StringWriter outputWriter = new StringWriter();   // Betwixt在这里仅仅是将Bean写入为一个片断   // 所以如果要想完整的XML内容,我们应该写入头格式   outputWriter.write(“<?xml version=’1.0′ encoding=’UTF-8′ ?> ”);   // 创建一个BeanWriter,其将写入到我们预备的stream中   BeanWriter beanWriter = new BeanWriter(outputWriter);   // 配置betwixt   // 更多详情请参考java docs 或最新的文档   beanWriter.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);   beanWriter.getBindingConfiguration().setMapIDs(false);   beanWriter.enablePrettyPrint();   // 如果这个地方不传入XML的根节点名,Betwixt将自己猜测是什么   // 但是让我们将例子Bean名作为根节点吧   beanWriter.write(“person”, new PersonBean(“John Smith”, 21));   //输出结果   System.out.println(outputWriter.toString());   // Betwixt写的是片断而不是一个文档,所以不要自动的关闭掉writers或者streams,   //但这里仅仅是一个例子,不会做更多事情,所以可以关掉   outputWriter.close();   }  }  //2、 将XML转化为JavaBean  import java.io.StringReader;  import org.apache.commons.betwixt.io.BeanReader;  public class ReadApp {  public static final void main(String args[]) throws Exception{   // 先创建一个XML,由于这里仅是作为例子,所以我们硬编码了一段XML内容   StringReader xmlReader = new StringReader(   "<?xml version=’1.0′ encoding=’UTF-8′ ?> <person><age>25</age><name>James Smith</name></person>");   //创建BeanReader   BeanReader beanReader = new BeanReader();   //配置reader   beanReader.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);   beanReader.getBindingConfiguration().setMapIDs(false);   //注册beans,以便betwixt知道XML将要被转化为一个什么Bean   beanReader.registerBeanClass("person", PersonBean.class);   //现在我们对XML进行解析   PersonBean person = (PersonBean) beanReader.parse(xmlReader);   //输出结果   System.out.println(person);   }  } 
 为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜! 关注我,私信回复我“资料” (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |