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