| 
                        副标题[/!--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.Betwixt
XML与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);  
 -  }  
 - } 
 
  
为什么某些人会一直比你优秀,是因为他本身就很优秀还一直在持续努力变得更优秀,而你是不是还在满足于现状内心在窃喜! 关注我,私信回复我“资料” 
                                                (编辑:滁州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |