BeanUtils框架的使用

BeanUtil框架完整包 立即下载
     说起java的内省,虽然说比反射技术要方便不少,但说到BeanUtils,其实用的功能,方便的操作更是让人不禁大赞。这个时代是框架满天飞的年代,BeanUtils可以说是其中的一朵奇葩。
     BeanUtils的使用:
     1、导入开发包。
     2、使用。
以操作下面这个javaBean为例:
public class Person {

	private String name;
	private int age;
	
	public Person(){}
	
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}
	
	public int getAge() {
		return age;
	}
	public String getName() {
		return name;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}

BeanUtils的使用:
情景:当用户从表单提交其注册参数,现在要将获取的参数封装入Person对象之中。
public class BeanUtilsTest {

	public static void main(String[] args) throws Exception {
		// 假设数据从表单提交,所以都是String类型
		String name = "zhangsan";
		String age = "23";

		Person p1 = new Person();
		// 用BeanUtils操作对象属性
		BeanUtils.setProperty(p1, "name", name);
		// Person类的age是int类型的,通过BeanUtils可以自动转换
		BeanUtils.setProperty(p1, "age", age);

		Person p2 = new Person();
		//用Map的方式填充对象属性
		Map<String, String> map = new HashMap<String,String>();
		map.put("name", name);
		map.put("age", age);
		BeanUtils.populate(p2, map);
		
		System.out.println(p1.getName());
		System.out.println(p1.getAge());
		System.out.println(p2.getName());
		System.out.println(p2.getAge());

	}
}



从上面一个例子中可以看到,BeanUtils可以将传入的数据进行转换,不过只对8种基本数据类型,如果要让其可以自动转换其余类型的数据,可以自己注册转换器,以下是注册一个Date类型的转换器:
//Date类型的数据转换器
		ConvertUtils.register(new Converter(){
			@Override
			public Object convert(Class type, Object value) {
				if(value==null){
					return null;
				}
				if(!(value instanceof String)) {
					throw new ConversionException("不支持该类型的转换");
				}
				String str = (String) value;
				if(str.trim().equals("")) {
					return null;
				}
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
				try {
					return sdf.parse(str);
				} catch (ParseException e) {
					throw new RuntimeException(e);
				}
			}
		}, Date.class);

在程序中加入这段代码,如果Person类有一个Date类型的属性,可以直接用BeanUtils对其进行赋值
BeanUtils.setProperty(p, "1990-09-22");

上面的注册转换器的例子只是说明如何注册自己的转换器,BeanUtils本身也已经提供了大量的实用的转换器,具体可查阅BeanUtils的Api。





基于深度学习的文字识别与检测算法研究 基于深度学习的文字识别与检测算法研究 1. 背景介绍 1.1 文字识别与检测的重要性 在当今信息时代,文字作为人类交流和传递信息的主要载体,无处不在。从日常生活中的路牌、广告牌,到办公场所的文件、合同,再到互联网上的网页、图片等 阅读详情

相关推荐

5分钟搞定PaddleOCR PP-OCRv5环境搭建:从安装到第一个识别Demo

本文提供了一份详细的PaddleOCR PP-OCRv5环境搭建与快速入门指南。通过清晰的步骤,指导读者在5分钟内完成从创建Python虚拟环境、安装PaddlePaddle框架和PaddleOCR库,到编写并运行第一个OCR识别Demo的全过程,帮助开发者快速体验最新的PP-OCRv5模型的文字识别能力。

sprite的博客 1267

关于BeanUtils.describe的使用

最近在做项目的时候,解除了BeanUtils.describe方法,头一次使用BeanUtils类,感觉很好用,但是在加载的过程中却遇到一些问题。在MyEclipse中自带的引入:import com.sun.org.apache.commons.beanutils.BeanUtils; 结果在运行BeanUtils.describe方法是报错: Caused by: com.sun.org.

springk的专栏 1万+

FFmpeg视频编码的流程详解及参考demo

本文主要讲解FFmpeg的视频编码的具体流程,API使用。最后再以一个非常简单的demo演示将一个yuv数据文件编码为H264的视频文件,也就是YUV编码为H264。

分享音视频技术 4498

org.apache.commons.beanutils.BeanUtils 简介

     BeanUtils简读本一、简介:BeanUtils提供对 Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。二、用法:BeanUtils是这个包里比较常用的一个工具类,这里只介绍它的copyPro...

javafenger 1449

从零构建高精度电子秤:HX711与STM32的时序通信陷阱与实战避坑指南

本文详细解析了使用STM32F103C8T6与HX711模块构建高精度电子秤的通信时序陷阱与实战解决方案。重点探讨了微秒级延迟实现、数据读取算法、校准方法和滤波优化,帮助开发者避开常见通信问题,提升电子秤的测量精度和稳定性。

data3的博客 782

AMESim柱塞泵建模全指南:从HCD库搭建到联合仿真

液压系统仿真中,轴向柱塞泵的建模始终是难点与热点。柱塞泵结构紧凑、功率密度高,在工程机械与航空航天领域应用广泛,然而其运动学与流体细节深度耦合,给仿真带来不小挑战。AMESim平台中的HCD库提供了一种从物理结构出发的建模思路,将柱塞泵分解为容积腔、节流口与机械约束等基础单元,从而真实刻画柱塞腔压力波动、配流特性和容积效率等关键行为,摆脱黑盒模型的局限。基于机理建模的仿真结果,可用于泵参数优化、故障特征分析以及控制策略验证。进一步结合AMESim与Simulink联合仿真,可以高效开发变量泵排量控制系统,研

weixin_29159441的博客 289

java beanutils 设置字段值_BeanUtils.copyProperties忽略某些字段的值及其原理

1. 用法例如: BeanUtils.copyProperties(beforeObj, route, new String[] { "id", "createDate", "modifyDate" });包名为:org.springframework.beans2. 源代码分析private static void copyProperties(Object source, Object tar...

weixin_34792272的博客 2887

物理专业书库模板(1):物理学书单(适合物理专业本科生、研究生、科研工作者、物理爱好者...)

物理专业书库模板(1):物理学书单(适合物理专业本科生、研究生、科研工作者、物理爱好者...) 求赞求喜欢求分享,建议关注,防止文章丢失。

hepyang的博客 2179

BeanUtils.describe()-

BeanUtils .describe ()--得到一个bean的所有描述,返回的是一个map

zhangzuanqian 1955

手机开发实战58——小区广播介绍2

业务 针对小区广播短消息的特点,可以提供一些基于目前短消息不能或不适合提供的服务: 1. 显示网络服务基站名称:用户可以随时了解手机登记在哪个基站下,特别是在边界交叉覆盖区域,用户可以清楚的知道通话建立在哪个基站下,在用户投诉和故障描述中也会有所帮助; 2. 提供用户问候信息:可以在覆盖机场、车站等地区的基站广播一些用户问候语或一些企业形象广告语; 3. 充分利用小区广播地

xjbclz的专栏 772

MATLAB应用实战系列(四十三)-基于MATLAB的光伏并网系统仿真设计

在Matlab中建立光伏电站接入系统模型,包括光伏发电逆变器及负荷模型等,仿真分析接入点处的电能质量,实现高品质并网运行。 壹 构建太阳能电池模型。 初始化参数如下图所示。 贰 构建MPPT控制模型。 具体封装如下所示: 通过PWM算法实现DC-DC稳步输出最大点。 叁 三、构建直流短距离输电线路。 仿真模型如下图: 通过电容来均衡线路电压,使得线路电压保持可靠性。 肆 通过逆变器变换,使得直流线路转换成...

wenyusuran的专栏 3169

BeanUtils.copyProperties()方法实现过滤掉某些字段

BeanUtils.copyProperties()方法中有忽略掉字段的属性: 将要忽略的字段直接写在对应的位置就可以了, 具体例子:A表为源表,B表为目标表,要把A复制到B表中,但想要忽略掉id和createDate,具体代码实现如下: BeanUtils.copyProperties(A, B, new String[]{"id","createDate"}); ...

qq_35030421的博客 1万+

高通camx进程ExtensionModule::TeardownOverrideSession类型crash问题分析之一:【死锁导致】

摘要:本文分析了一个在相机老化测试中出现的pthread_cond_wait持锁超时导致的ExtensionModule::TeardownOverrideSession崩溃问题。通过crash堆栈和日志分析,发现close阶段存在近1分钟的无响应期。进一步分析trace文件发现存在多线程死锁:ChiFeature2Graph::GenerateSmartErrorCode和ChiFeature2RequestObject::SetCurRequestState两个线程分别持有不同锁并互相等待对方释放。最终

1110

Spring-框架-BeanUtils类使用与源码分析

BeanUtils使用介绍: BeanUtils是spring自带一个对象适配器,主要作用是在VO、DTO转换时候使用,比如如下代码: /** * 将FincrmOrganizationMechanism适配成OrganizationSetDTO * * @param organizationMechanism * @return *...

1070

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

spring的beanutils工具类_Spring 框架BeanUtils工具类使用(1)

BeanUtils 工具类提供了非常丰富的Java反射API,开发过程中使用恰当可以减少很懂工作量。 其中最常用的莫过于copyProperties :场景设想比如有属性比较多的两个类,User.java 和 UserForm.java 它们俩有部分属性字段是一样的,但UserForm.java是对应前端表单、User.java对应数据库的实体映射,前者带的属性比较多,或者有些字段名称不一样,我现...

weixin_39924486的博客 616

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

mini小框架BeanUtils基本使用

1.属性的动态getter,setter 在这框架满天飞的年代,不能事事都保证执行getter,setter函数了,有时候属性是要需要根据名字动态取得的,就像这样:   BeanUtils.getProperty(myBean,"code"); 而BeanUtils更强的功能是直接访问内嵌对象的属性,只要使用点号分隔。 BeanUtils.getProperty(orderBean, "

小卓在线 738

JSP+JavaBean+Servlet模式及BeanUtils框架使用

JSP模式使用BeanUtils框架1. jsp+javaBean2. jsp+javaBean+Servlet(MVC)2.1 示例: 登陆实现3. 自定义 MyBeanUtils.populate() 1. jsp+javaBean jsp:请求处理、业务处理、数据库操作、数据显示 javaBean:数据封装 优点:开发简单 缺点:维护难,代码几乎都在 jsp 中 2. jsp+javaBea...

Hello, New World! 858

Servlet和BeanUtils框架的联合使用(5)

package cn.wwh.www.web.request; import java.io.IOException; import java.io.PrintWriter; import java.lang.reflect.InvocationTargetException; import java.util.Enumeration; import javax.servlet.Se

为梦想而奋斗,无悔_一叶扁舟的点滴成长! 818

SSH框架之Struts(4)——Struts查漏补缺BeanUtils的简单使用

一)、背景  上篇博客我们提到了一个重要的操作javaBean工具——BeanUtils。这篇博客我们简单来了解一下BeanUtils的相关知识。BeanUtils作为一个第三方的服务,提供了对javaBean的各种操作服务。  其主要的功能总结如下:   1、通过BeanUtils.cloneBean()方法克隆一个JavaBean的实例   2、通过BeanUtils.copyProp

死理性派~~~~ 2117

Spring 框架中的 BeanUtils

Spring框架中的 BeanUtils是一个工具类,主要用于操作 Java Bean 对象。它提供了一些静态方法,可以方便地复制属性、实例化对象等。

qq_48763502的博客 1347

用BeanUtils框架操作类的属性

首先导入 commons-logging.jar commons-beanutils-1.8.0.jar 这两个架包用BeanUtils框架操作类的属性: @Test public void test1() throws Exception, InvocationTar

文忠专栏 1766

内省和BeanUtils框架2

内省和BeanUtils框架封装请求参数到JavaBean中的原理           注: 需要jar包: commons-beanutils-1.8.3.jar和commons-logging-1.1.1.jar           *******************************************************************************

忧桑的小猿猿 330

Spring BeanUtils 和 Apache BeanUtils 你用哪个?

在我们实际项目开发过程中,我们经常需要将不同的两个对象实例进行属性复制,从而基于源对象的属性信息进行后续操作,而不改变源对象的属性信息,比如DTO数据传输对象和数据对象DO,我们需要将DO对象进行属性复制到DTO,但是对象格式又不一样,所以我们需要编写映射代码将对象中的属性值从一种类型转换成另一种类型。这种转换最原始的方式就是手动编写大量的get/set代码,当然这是我们开发过程不愿意去做的,因为它确实显得很繁琐。为了解决这一痛点,就诞生了一些方便的类库,常用的有 apache的BeanUtils。

2501_92606851的博客 477

BeanUtils

-------android培训、 java培训  、期待与您交流------- BeanUtils框架 BeanUtils是阿帕奇(apache)开发的一套提供对JavaBean进行各种操作的框架, BeanUtils分为4个包: org.apache.commons.beanutils org.apache.commons.beanutils.converters or

1598

SpringBoot Bean映射工具终极对比:Apache BeanUtils vs Spring BeanUtils

🚀 在SpringBoot项目开发中,**Bean映射工具**是连接不同数据层的关键桥梁。面对Apache BeanUtils和Spring BeanUtils两大主流选择,很多开发者都感到困惑。本文将通过深入对比,帮你找到最适合的Bean映射解决方案! ## 什么是Bean映射?为什么它如此重要? **Bean映射**在SpringBoot开发中扮演着至关重要的角色。简单来说,它就是将数据

gitblog_01129的博客 659
上一篇: java的内省
下一篇: java关于Properties的使用
Sweeter
博客等级 码龄14年 81粉丝 41原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值