beanutils(为什么使用BeanUtils操做属性跑出来是空值)
本文目录
- 为什么使用BeanUtils操做属性跑出来是空值
- BeanUtils工具包使用异常,有加分!!!
- 如何实现BeanUtils.copyProperties方法的功能
- android-studio中怎么添加beanutils
- commons-beanutils可以干什么
- 如何实现beanutils.copyproperties不复制某些字段
为什么使用BeanUtils操做属性跑出来是空值
packagecom.wzh.test.beanutils;importjava.lang.reflect.InvocationTargetException;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.HashMap;importjava.util.Map;importorg.apache.commons.beanutils.BeanUtils;importorg.apache.commons.beanutils.ConversionException;importorg.apache.commons.beanutils.ConvertUtils;importorg.apache.commons.beanutils.Converter;importorg.apache.commons.beanutils.locale.converters.DateLocaleConverter;importorg.junit.Test;//使用BeanUtils操作Bean属性(第三方)publicclassDemo1 {@Testpublicvoidtest1() throwsIllegalAccessException,InvocationTargetException {Person p = newPerson();BeanUtils.setProperty(p, “name“, “victor“);System.out.println(p.getName());}@Testpublicvoidtest2() throwsIllegalAccessException,InvocationTargetException {Person p = newPerson();// 自动将String转为int 支持8种基本数据类型BeanUtils.setProperty(p, “age“, “23“);// 默认不支持时间转换BeanUtils.setProperty(p, “Birthday“, “2012-3-1“);System.out.println(p.getAge());System.out.println(p.getBirthday());}@Testpublicvoidtest3() throwsIllegalAccessException,InvocationTargetException {// 为了让日期赋到Bean的Birthday属性上,我们给BeanUtils注册一个日期转换器(敲入代码未起作用,需检查)// 方法1.ConvertUtils.register(newConverter() {@OverridepublicObject convert(Class type, Object value) {if(value == null)returnnull;if(!(value instanceofString)) {System.out.println(“不是日期类型“);thrownewConversionException(“不是日期类型“);}String str = (String) value;if(str.trim().equals(str)) {returnnull;}SimpleDateFormat df = newSimpleDateFormat(“yyyy-MM-dd“);
BeanUtils工具包使用异常,有加分!!!
package com.cxf.custom;public class Student {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;}private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}}
刚才那个引用错包问题晚了一步,这次不能晚了,把这个Student替换你的就OK了
这是运行结果:CaoChegn
如何实现BeanUtils.copyProperties方法的功能
第一步: BeanUtils.copyProperties()与PropertyUtils.copyProperties() 1、 通过反射将一个对象的值赋值个另外一个对象(前提是对象中属性的名字相同)。 2、 BeanUtils.copyProperties(obj1,obj2); 经常闹混不知道是谁给谁赋值,无意中先到“后
android-studio中怎么添加beanutils
如果beanutils是一个jar包,添加的步骤:
点击“app”module,然后菜单栏“Build——》Edit flavors——》Dependences”,点击右边栏的“+”,选中“Library Dependences”,最后输入“对应的jar”,导入缺失的beanutils包,最运行项目,问题解决。。。钊林IT分享
commons-beanutils可以干什么
Jakarta Commons项目提供了相当丰富的API,我们之前了解到的Commons Lang只是众多API的比较核心的一小部分而已。Commons下面还有相当数量的子项目,用于解决各种各样不同方向的实际问题,BeanUtils就是其中的一个,用于处理JavaBeans。它利用Java的反射机制,从动态的生成对bean的getter和setter的调用代码,到模拟创建一个动态的bean,等等。这个包看似简单,却是很多开源项目的基石:如在著名的Struts和Spring Framework中,我们都能找到BeanUtils的影子。大家猜猜看,有哪位名人是BeanUtils的作者之一?没错,就是Struts的创始人Craig McClanahan。 BeanUtils最核心的好处在于:我们在编码时,并不需要知道我们处理的JavaBeans具体是什么类型,有哪些属性,这些信息是可以动态获取的,甚至我们都可以不必去关心事实上是否存在这样一个具体的JavaBean类。我们只需要知道有一个JavaBean的实例,我们需要从中取得某个属性,设定某个属性的值,或者仅仅是需要一个属性表。要做到这些,依靠Sun提供的JavaBean规范似乎找不到一个很直接的方式,除非硬编码,将getXxxx()和setXxxx()直接写进我们的程序。但是这样就大大增加了代码的复杂度、耦合性和维护成本。
如何实现beanutils.copyproperties不复制某些字段
spring和apache commons-beanutils中分别存在一个BeanUtils,提供了对java bean的常用操作。 之前在写程序时,用到了两个不同类型但属性基本相同的对象的拷贝,结果在拷贝java.util.Date类型的对象属性时,由于其值为null,而抛异常。 由于时间紧急,所以临时改成了get/set方式,幸亏对象的属性不算多。 后来一直耿耿于怀这个问题,今天抽空看了一下spring和apache commons-beanutils包中BeanUtils.copyProperties的实现。 spring中实现的方式很简单,就是对两个对象中相同名字的属性进行简单get/set,仅检查属性的可访问性。 而commons-beanutils则施加了很多的检验,包括类型的转换,甚至于还会检验对象所属的类的可访问性。 而且,commons-beanutils中的装换是不支持java.util.Date的。除了支持基本类型以及基本类型的数组之外,还支持java.sql.Date, java.sql.Time, java.sql.TimeStamp, java.io.File, javaio.URL这些类的对象,其余一概不支持。不过你可以自定义你的类的Converter。然后注册进去。 感觉commons-beanutils包中的这个BeanUtils类的copyProperties方法,太过复杂,约束太多,而且使用不便,虽然可扩展性好了,但是易用性不高。
更多文章:

expression怎么读英语(“expression”解释为“词语”是可数名词吗)
2025年3月3日 03:50

tradition是什么意思(tradition 和custom 有什么区别)
2025年3月28日 19:00

troye sivan微博(大家是怎么评论Troye Sivan的)
2025年3月25日 20:40

google play商店(谷歌Play商店下架安兔兔评测应用,该公司如何回应)
2025年3月25日 14:40

even though和though的区别(even though和though有什么区别)
2025年3月7日 11:00

eclipse的安装步骤(如何安装java eclipse)
2025年3月7日 21:10

mstsc是什么意思?mstsc 和mstsc /admin分别远程连接服务器有什么区别
2025年2月19日 07:10

jquery file uploader(jquery.fileUpload.js文件上传问题)
2025年3月15日 04:40