apache commons beanutils中类propertyUtils中的方法描述

Apache Commons BeanUtils深度解析:原理、性能与实战避坑指南 在Java企业级开发中,对象属性拷贝是高频且基础的操作,其核心原理通常基于Java反射机制。反射允许程序在运行时动态获取和操作类信息,这为自动化属性映射提供了可能,但也带来了性能开销。理解这一原理对于选择合适的数据映射工具至关重要,它直接影响着系统的可维护性和执行效率。在微服务架构和数据处理场景中,高效的属性拷贝能显著提升开发体验和系统性能。Apache Commons BeanUtils作为经典的属性拷贝工具,通过内置的类型转换器系统,解决了不同类型属性间的自动转换问题,尤其适用于需要处理复杂类型转换或与 阅读详情

功能说明: 顾名思义,Bean Utility就是Bean小工具,主要是封装了反射(reflection)和自省(introspection)的API(可以查看java.lang.reflect和java.beans文档),对bean进行操作。
主要功能: 操作Bean的属性,针对Bean属性排序,Bean和Map的转换,创建动态的Bean等
 Apache提供的架包:commons-beanutils-1.7.jar

2.1 org.apache.commons.beanutils.PropertyUtils 利用反射操作bean的属性

getSimpleProperty()通过反射读取属性

1 Person person=new Person();
2 person.setName=("heis");
3 String name=(String)PropertyUtils.getSimpleProperty(person,"name");->heis
getNestedProperty()检索嵌套的bean属性
1 Book book=new Book();
2 book.setAuthor(person);
3 String authorName=(String)PropertyUtils.getNestedProperty(book,"author.name");//得到person的name

 getIndexedProperty()访问数组或List型内Object的属性

1 Chapter chapter1=new Chapter();
2 Chapter chapter2=new Chapter();
3 book.getChapters().add(chapter1);
4 book.getChapters().add(chapter2);
5 Chapter chapter=(Chapter)PropertyUtils.getIndexedProperty(book,"chapter[0]");
 getMappedProperty()访问Map型bean属性的值
1 Person person=new Person();
2 person.setName=("heis");
3 Map favorites=new HashMap();
4 favorites.put("food","rice");
5 person.setFavorite(favorites);
6 String favorFood=(String)PropertyUtils.getMappedProperty(person,"favorites(food)");->rice
getProperty()和setProperty()可以访问任何bean属性,通过表达式可以完成上面方法的功能
1 这是一个树型的Bean属性视图
2 Book book
3 |--List authors
4       |--[0]->Person person
5                     |--Map favorites
6                              |--Entry(key->"food",value->"")
7 PropertyUtils.setProperty(book,"authors[0].favorites(food)","rice");
8 String favorFood=(String)PropertyUtils.getProperty(book,"authors[0].favorites(food)");->rice

 isReadable()和isWritable()检查bean是否可读(有getter)或可写(有setter)

1 PropertyUtils.isReadable(book,"name");
2 PropertyUtils.isWritable(book,"name");
getPropertyType()获取属性类型
1 System.out.println(PropertyUtils.getPropertyType(person,"favorites"));->java.util.Map
copyProperty()复制Bean属性,只复制引用,final类型和原始类型(primitive type)
1 Book book1=new Book();
2 book1.setName("Commons Cookbook Notes");
3 Book book2=new Book();
4 PropertyUtils.copyProperty(book2,book1);//将book1的name属性copy到book2
describe()创建包含Bean属性的Map
1 Person person=new Person();
2 person.setName("heis");
3 Book book=new Book();
4 book.setName("Commons Cookbook Notes");
5 book.setAuthor(person);
6 Map propMap=PropertyUtils.describe(book);
7 propMap.get("name");->Commons Cookbook Notes
8 propMap.get("author");->person
无人机蜂群联合指挥作战技术详解 随着人工智能、通信技术、新材料等领域的不断进步,无人机蜂群联合指挥作战技术将迎来更加广阔的发展前景。未来,无人机蜂群将更加智能化、自主化,能够执行更加复杂、精细的作战任务。同时,加强国际合作,共同制定国际规则和标准,将是推动无人机蜂群技术健康发展的重要方向。无人机蜂群技术,是指通过先进的通信技术、自主导航与决策算法,将大量小型、低成本、功能各异的无人机组织成一个高度协同的群体,执行复杂多样的军事任务。2. 通信与数据链:采用高速、低延迟、抗干扰的通信技术,保障群体内无人机间的信息交换。 阅读详情

相关推荐

excel 利用SUBTOTAL函数计算筛选后数列总和、均值、最大、最小值

表里有三个人,咱们需要筛选出三个人,并分别计算他们的总和值。 先看一下数据范围(A1:B27) 通过筛选找张三。 按照上图所示输入函数,选择9,求和。 然后按照函数输入即可。 就能计算出结果。 筛选项选择王五,就会自动计算王五的总和。 筛选到李四就会自动计算李四的总和。 如果把9改成1,就是自动计算筛选出来的均值结果,如下图所示。 如果改成4就是取筛选项的最大值,选择5就是取最小值。 ...

yuanYW7556的博客 3万+

PropertyUtils.getProperty和PropertyUtils.setProperty的用法详解

背景        一般情况下,在Java中你可以通过get方法轻松获取beans中的属性值。但是,当你事先不知道beans的类型或者将要访问或修改的属性名时,该怎么办?Java语言中提供了一些像java.beans.Introspector这样类,实现了在运行时检测Java类并确定属性get和set方法的名称,结合Java中的反射机制就可以调用这些方法了。然而,这些APIs使用起来比较困难,并

CTO成长之路——Rosanu 4476

STM32G0实战:HAL库与LL库Flash操作避坑指南(附HardFault解决方案)

本文深入剖析了STM32G0系列微控制器在Flash操作中常见的HardFault问题,对比了HAL库与LL库在读写擦除操作上的底层差异与潜在陷阱。文章提供了基于寄存器状态分析的精准调试方法,并给出了经过实战检验的解决方案与健壮的代码框架,帮助开发者有效规避数据丢失与系统崩溃风险。

t8u9v0w1x的博客 730

PropertyUtils的使用

1、定义一个二个bean类 (1)  第一个   Java代码   package com.sunrex.demo02;      import java.util.List;      public class Address {       private String email;       private List telephone;  

一条宝鱼的专栏 2988

OpenClaw Browser Relay Extension 鉴权失败与 invalid handshake 问题的终极解决方案

在使用 OpenClaw 浏览器插件 (Browser Relay Extension) 时,许多用户可能会遇到两个主要问题:一是配置端口错误导致的连接失败,二是鉴权失败 (Gateway token rejected)。本文将详细解析这两个问题并提供解决方案。

gerryke的blog 5559

SAP 接口测试操作-业务顾问

业务顾问测试接口操作

weixin_43657667的博客 5157

PropertyUtils详解

作为JavaBean属性操作的得力助手,其简洁而强大的功能在日常开发中频繁派上用场。通过深入了解和灵活运用,你将更加高效地处理JavaBean的属性操作。希望这篇文章为你揭示了的奇妙世界,使你在Java开发中更加游刃有余!

技术研究中心 1261

点云体素化算法研究-3.Voxelization 三维模型体素化

体素(voxel)即体积元素的简称,是数字数据在三维空间分割上的最小的单位。体素化就是通过创建三维体素网格来表示三维物体,是一种将无序点云变为有序点云的降采样的空间数据结构方法,便于实现点云的空间卷积。激光雷达(LiDAR)| Open3D:第五节 表面重建-体素化。

周陽讀書 2066

代码摘录

PropertyUtils.getSimpleProperty 用法 import org.apache.commons.beanutils.PropertyUtils; public static void main(String[] args) { String prop = "fA"; SjjDemoVO t = new SjjDemoVO(); t.setfA("aaa")...

Ewigkeit_Jie的博客 263

数据分析项目:电商用户行为分析系统

本报告基于某电商平台用户行为数据(采样10%),通过清洗、探索性分析及多维度建模,旨在挖掘用户行为特征、商品销售规律及用户价值分层,为运营策略优化提供数据支持。原始数据字段:用户ID、商品ID、类目ID、行为类型、时间戳。长尾商品(购买量低)可考虑捆绑销售或限时折扣,提升动销率。长尾商品(购买量低)可考虑捆绑销售或限时折扣,提升动销率。,少数高活跃用户贡献大部分行为,多数用户行为次数较少。

Nervousr的博客 1702

【深度学习】脸部修复,CodeFormer,论文,实战

Blind face restoration是一个高度 ill-posed 的问题,通常需要辅助引导来 1) 改善从降级输入到期望输出的映射,或者 2) 补充在输入中丢失的高质量细节。在本文中,我们展示了在一个小的代理空间中学到的离散码本先验可以通过将盲目的面部恢复建模为 a code prediction task来大大减少恢复映射的不确定性和模糊性,同时为生成高质量面部提供丰富的视觉元素。

q742971636的博客 2994

提供静态方法访问单例对象中的方法

 PropertyUtils  就是此列/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for addi

九天的专栏 892

16、树莓派Pico W:蓝牙与Wi-Fi应用指南

本文介绍了树莓派Pico W在蓝牙与Wi-Fi通信方面的应用,涵盖蓝牙配对原理、使用HC-06模块实现手机远程控制LED和传输内部温度,以及通过Wi-Fi进行网络连接、扫描和UDP协议下的设备控制。文章包含详细电路连接、代码实现与测试步骤,并提供拓展建议、常见问题解决方法及开发注意事项,帮助读者快速掌握基于Pico W的无线通信项目开发,适用于物联网入门与实践场景。

sun99的博客 289

apache下的BeanUtils和PropertyUtils的一个不同

1、引入apache jar 包,如下:     commons-beanutils-1.7.0.jar     commons-logging.jar 2、User u1 = new User(); u1.setAge(10); u1.setPassword("22222"); u1.setUserName("王黄"); u1.setD(1.0f); To

z1074907546的博客 2580

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

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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

commons-beanutils的使用

       commons-beanutils是Apache提供的一个用于操作JAVA bean的工具包。里面提供了各种各样的工具类,让我们可以很方便的对bean对象的属性进行各种操作。 一 commons-beanutils依赖        pom方式的引入(maven项目)。 <!-- h...

旧路 7538

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Apache Commons BeanUtils包学习(2)-beanutils.PropertyUtils, beanutils.DynaBean

原文:http://space.itpub.net/7191730/viewspace-446960#xspace-tracks1.简介 在一般的写bean组件的时候,都必须要写setter和getter方法,当然如果我们事先已经知道bean的相关属性和方法,写bean是比较简单的,但是组件太多的时候,重复编写常常是枯燥乏味令人厌烦的。但当有些时候我们需要调用动态对象 的属性的时候,我们应该怎么来设定和获取对象的属性呢?BeanUtils就可以帮助我们来解决这个问题。它需要Collections包和lo

Anvil的专栏 6564

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Apache Commons BeanUtils包学习 2 -beanutils PropertyUtils bean

Apache Commons BeanUtils包学习 2 -beanutils PropertyUtils bean

qq_44949848的博客 807

BeanUtils & PropertyUtils & MethodUtils类使用方法

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

Liang 1101

【commons-beanutils专题】003- PropertyUtils 专题

代码】【commons-beanutils专题】003-PropertyUtils专题。

訾博(ZiBo)的博客 919

Apache Commons BeanUtils 深度解析与最佳实践

Student source = new Student("PERF001", "性能测试", 25, "计算机");Student source = new Student("S001", "王五", 23, "网络安全");BeanUtils.setProperty(student, "address.city", "南京市");System.out.println("年龄: " + age + ", 状态: " + active);// 保持null值,不进行默认转换。

2501_93078354的博客 745

commons-beanutils(JavaBean工具库)

本文介绍了Apache Commons BeanUtils工具库的核心功能,包括对JavaBean属性的操作、构造方法调用、类型转换和反射方法调用等。主要包含以下四个实用类: BeanUtils:提供对象克隆、属性复制、Map与Bean互转等便捷操作 ConstructorUtils:支持反射调用构造函数(包括私有构造) ConvertUtils:实现基本类型与字符串的转换,支持自定义转换器注册 MethodUtils:提供方法反射调用功能,支持精确参数匹配和静态方法调用 该库通过Maven依赖common

zp的博客 643

apache commons-beanutils中BeanUtils和PropertyUtils区别

import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.PropertyUtils; @Data public class Bean1 { private Date date; } 测试BeanUtils private static void demo() throws Exception { Bean1 bean = new Bean1(); BeanUtils.se

ikun 的博客 523

Apache Commons BeanUtils 反射和内审工具库,属性复制流行库对比

目录 BeanUtils 概述与下载 BeanUtils 概述与下载 1、Apache Commons BeanUtils 官网:http://commons.apache.org/proper/commons-beanutils/ 2、大多数 Java 开发人员都习惯于创建符合属性 getter 和 setter 的 JavaBeans 命名模式的 Java 类,然后通过调用相应的 ge...

蚩尤后裔-汪茂雄 2776

BeanUtils & PropertyUtils & MethodUtils类使用方法

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

gundumw100的专栏 380

java beanutil 工具类_Apache Commons BeanUtils PropertyUtils工具类操作Java Bean属性

PropertyUtils和BeanUtils这两个类功能基本相同,主要的区别有:1、PropertyUtils提供的方法多于BeanUtils提供的方法。2、BeanUtils在对Bean赋值时会进行类型转化,PropertyUtils不会进行类型进行转化,如果类型不同则会抛出异常。setProperty()和setSimpleProperty()的区别:setProperty(), Set t...

weixin_32513585的博客 1004

对象拷贝类PropertyUtils,BeanUtils,BeanCopier的技术沉淀

功能简介   对象拷贝的应用现状简介: 业务系统中经常需要两个对象进行属性的拷贝,不能否认逐个的对象拷贝是最快速最安全的做法,但是当数据对象的属性字段数量超过程序员的容忍的程度,代码因此变得臃肿不堪,使用一些方便的对象拷贝工具类将是很好的选择。 目前流行的较为公用认可的工具类: Apache的两个版本:(反射机制) org.apache.commons.beanutils.Pr

专注、专心、专业 9969
上一篇: Hibernate中Session的操作解释
下一篇: Java enum的用法详解
bbewx
博客等级 码龄16年 29粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值