副问题[/!--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);
- }
- }
为什么某些人会一向比你优越,是由于他自己就很优越还一向在一连全力变得更优越,而你是不是还在满意于近况心田在窃喜! 存眷我,私信回覆我“资料”
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|