- 浏览: 305308 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
liuyong19832011:
,赞一个
Java通过BufferedWriter追加内容到文件末尾的几种常用方法 -
justjavac:
总结很好,怎么没人支持呢?最近发现iteye踩贴现象很严重。
shell数组的使用
原文地址: http://blog.csdn.net/itmyhome/article/details/7011656
BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。
下面通过代码来理解BeanUtils
首先创建两个类
Person.java
Student.java
测试类 BeanUtilTest.java
程序输出结果为:
可见Student自己设置的值都被Person给覆盖了
再做下面两个测试
把Person中的setName和setAge 改为setname setage程序输出结果为
结果没有改变
而如果改为setNAme, setAGe结果为:
我们发现结果改变了 内容没有被覆盖
注: 当我们加载BeanUtils类时 可能会报如下错误
产生错误的原因是引入的包不对,应引入import org.apache.commons.beanutils.BeanUtils;
而不应是import com.sun.org.apache.commons.beanutils.BeanUtils;
另外所需jar包为:
commons-beanutils-1.8.3.jar
commons-logging-1.1.1.jar
还有一个很邪门的问题 实在令我不解
就是如果把Person,Student 测试类写在一起的话 会产生问题
类似与这样的结构
出现不了我们所需要的结果,郁闷中....
BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。
下面通过代码来理解BeanUtils
首先创建两个类
Person.java
package com.org; import java.util.Date; public class Person { private String name; private String sex; private int age; private Date birthday; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
Student.java
package com.org; import java.util.Date; public class Student { private String name; private int age; private String address; private Date birthday; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
测试类 BeanUtilTest.java
package com.org; import java.lang.reflect.InvocationTargetException; import java.util.Date; //import com.sun.org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils; public class BeanUtilTest { public static void main(String[] args) { Person per = new Person(); Student stu = new Student(); per.setName("zhangsan"); per.setSex("男"); per.setAge(20); per.setBirthday(new Date()); stu.setName("wuangwu"); stu.setAddress("北京市"); try { BeanUtils.copyProperties(stu, per); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(stu.getName()); System.out.println(stu.getAge()); System.out.println(stu.getAddress()); System.out.println(stu.getBirthday()); } }
程序输出结果为:
zhangsan 20 北京市 Fri Nov 25 13:03:29 CST 2011
可见Student自己设置的值都被Person给覆盖了
再做下面两个测试
把Person中的setName和setAge 改为setname setage程序输出结果为
zhangsan 20 北京市 Fri Nov 25 13:08:34 CST 2011
结果没有改变
而如果改为setNAme, setAGe结果为:
wuangwu 0 北京市 Fri Nov 25 13:10:25 CST 2011
我们发现结果改变了 内容没有被覆盖
注: 当我们加载BeanUtils类时 可能会报如下错误
Exception in thread "main" java.lang.ExceptionInInitializerError at com.org.BeanUtilTest.main(BeanUtilTest.java:101) Caused by: com.sun.org.apache.commons.logging.LogConfigurationException: com.sun.org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException) (Caused by com.sun.org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException)) at com.sun.org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543) at com.sun.org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235) at com.sun.org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209) at com.sun.org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351) at com.sun.org.apache.commons.beanutils.BeanUtils.<clinit>(BeanUtils.java:111) ... 1 more Caused by: com.sun.org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException (Caused by java.lang.NullPointerException) at com.sun.org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:397) at com.sun.org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529) ... 5 more Caused by: java.lang.NullPointerException at com.sun.org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:374) ... 6 more
产生错误的原因是引入的包不对,应引入import org.apache.commons.beanutils.BeanUtils;
而不应是import com.sun.org.apache.commons.beanutils.BeanUtils;
另外所需jar包为:
commons-beanutils-1.8.3.jar
commons-logging-1.1.1.jar
还有一个很邪门的问题 实在令我不解
就是如果把Person,Student 测试类写在一起的话 会产生问题
类似与这样的结构
class Person{ ..... } class Student{ ..... } public class BeanUtilTest { public static void main(String[] args) { ...... } }
出现不了我们所需要的结果,郁闷中....
发表评论
-
[转] System.out.println()和System.out.write()的区别
2013-12-27 16:14 899转至:http://blog.chinaunix.net/ui ... -
[转]Java读取解析sql文件,并使用netiler dao执行sql
2013-12-26 15:25 7990转至: 最近在做系统数据初始化,采用sql形式导入基础数据,这 ... -
[转]Java 单例模式详解
2013-08-20 11:15 795转至:http://www.cnblogs.com/whgw/ ... -
[转]Java synchronized详解
2013-08-07 19:12 856转至:http://www.cnblogs.com/devin ... -
[转]Java Socket Programming-Transferring large sized files through socket
2013-08-06 18:26 2871转至:http://www.coderpanda.com/ja ... -
【转】java如何从ftp下载超大文件
2013-08-06 00:28 2050转至: http://www.2cto.com/k ... -
【转】java大数据处理(千万级别FTP下载)
2013-08-06 00:20 1532转至:http://www.th7.cn/Program/ja ... -
Jakarta-Common-IO使用笔记
2013-08-05 14:11 1023转至: http://tech.ddvip.com/2008- ... -
[转]StringUtils详细介绍
2013-07-24 17:31 1298原文地址:http://www.blogj ... -
[转]Java内存泄漏
2013-04-10 13:45 873http://www.cnblogs.com/dotnetdo ... -
【转】java实现导出Excel文件和XML文件
2013-03-07 23:00 1403http://www.2cto.com/kf/201208/1 ... -
Java中split的注意事项
2013-01-22 00:08 1058stringObj.split([separator,[lim ... -
Struts2.2.1注解方式使用json整合jquery getJson方法
2013-01-10 22:53 01.引入与json相关的jar文件: json-lib ... -
ssh2常用annotation
2012-01-30 21:54 1004Spring annotation: @Servic ... -
Java日期类型与String的转换
2011-11-04 14:30 91511.String转Date SimpleDateFormat ... -
Java调用批处理或可执行文件[转载]
2011-07-22 17:17 755http://www.blogjava.net/supercr ... -
Java通过BufferedWriter追加内容到文件末尾的几种常用方法
2011-07-18 16:15 33837import java.io.BufferedWriter; ... -
JAVA map的遍历
2011-07-05 09:07 1021第一种entrySet,效率较高,推荐用这种: Map ... -
java.lang.OutOfMemoryError: Java heap space 的解决[转载]
2011-05-27 14:00 10451、首先是:java.lang.OutOfMemoryErro ... -
synchronized与static synchronized 的区别
2011-02-22 14:37 29071.synchronized与static synchro ...
相关推荐
一个BeanUtils.copyProperties的小型快速替代。 起因 由于BeanUtils(Spring或Apache Commons)的copyProperties实现是利用反射实现的,它在大量调用时具有比较严重的性能问题。 BeanMapper通过javassist类库实现在...
主要介绍了java Beanutils.copyProperties( )用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了使用BeanUtils.copyProperties进行对象之间的属性赋值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
org.apache.commons.beanutils.jar
commons-beanutils-1.8.0.jar beanutils.jar beanutils.jar工具包
关于JSF的commons-beanutils.jar.zip
json相关jar包(不使用springmvc开发时)。其中包含(commons-beanutils.jar、commons-collections-3.1.jar、commons-lang-2.6.jar、commons-logging.jar、ezmorph-1.0.6.jar、json-lib-2.2.3-jdk15.jar)
commons-beanutils.jar commons-beanutils.jar
Apache提供的这个beanutils包极大方便了javabean的 操作。包含了最新的commons-beanutils-1.9.3.jar和api文档,以及其依赖的commons-logging-1.2.jar包
beanUtils 方便访问javaBean 附带支持框架 logging jar包,Apache提供的这个beanutils包极大方便了javabean的 操作。包含了最新的commons-beanutils-1.9.3.jar,以及其依赖的commons-logging-1.2.jar包
这是commons常用到的包,包括:commons-pool.jar,commons-beanutils.jar等共八个commons.jar包
commons-beanutils.jar 开发时所需要的jar包
JSF开发所必需包:花了很长时间才收集好,很费时,现已收集好,何不分享给大家,让大家节省...commons-beanutils.jar commons-collections.jar commons-digester.jar jsf-api.jar jsf-impl.jar jstl.jar standard.jar
此为BeanUtils的实例。其中apache的包有一个小的BUG已在其中说明。
commons-beanutils.jar.zip(173 k)commons-beanutils.jar.zip(173 k)commons-beanutils.jar.zip(173 k) jdbc 专用