- Java BeanUtils 教程
- Java BeanUtils - 首页
- Java BeanUtils - 概述
- 动态 Bean (DynaBeans)
- 背景
- 基本 DynaBeans
- ResultSetDynaClass
- RowSetDynaClass
- WrapDynaBean
- 延迟加载 DynaBeans
- 数据类型转换
- 背景
- BeanUtils 和 ConvertUtils
- 创建自定义转换器
- 区域感知转换
- 实用程序对象和类
- 实用程序对象和类
Java BeanUtils - 嵌套属性访问
描述
您可以通过使用“.”分隔符连接访问路径的属性名称来访问 Bean 的嵌套属性的值。
您可以使用以下方法获取和设置嵌套属性的值
PropertyUtils.getNestedProperty(Object, String)
PropertyUtils.setNestedProperty(Object, String, Object)
参数
Object:它是要获取或修改其属性的 Bean。
String:是要获取或修改的嵌套属性的名称。
示例
在这个示例中,您将看到如何获取和设置嵌套属性的值。我们将创建三个类;SubBean、AppLayer1Bean 作为 Bean,以及BeanUtilsDemo 作为运行的主程序。
import org.apache.commons.beanutils.PropertyUtils; public class BeanUtilsDemo { public static void main(String args[]){ try{ // create the bean AppLayer1Bean nested = new AppLayer1Bean(); // set a SubBean which is part of another bean SubBean sb = new SubBean(); sb.setStringProperty("Hello World from SubBean"); nested.setSubBean(sb); // accessing and setting nested properties PropertyUtils.setNestedProperty( nested, "subBean.stringProperty", "Hello World from SubBean, set via Nested Property Access"); System.out.println( PropertyUtils.getNestedProperty(nested, "subBean.stringProperty")); } catch(Exception e){ System.out.println(e); } } }
现在,我们将创建另一个名为SubBean.java 的类,如下所示
public class SubBean { private int intProperty; private String stringProperty; public void setIntProperty(int intProperty) { this.intProperty = intProperty; } public int getIntProperty() { return this.intProperty; } public void setStringProperty(String stringProperty) { this.stringProperty = stringProperty; } public String getStringProperty() { return this.stringProperty; } }
创建另一个名为AppLayer1Bean.java 的类,并包含以下代码
public class AppLayer1Bean { private SubBean subBean; public void setSubBean(SubBean subBean) { this.subBean = subBean; } public SubBean getSubBean(){ return this.subBean; } }
输出
让我们执行以下步骤来查看上述代码是如何工作的
将上述第一段代码保存为BeanUtilsDemo.java。
现在使用“运行”选项或 Ctrl+f11 执行代码,如下所示的输出将显示。
PropertyUtils 方法签名
PropertyUtils 类提供了以下方法,这些方法接受任意组合的简单、索引和映射属性访问,以获取和设置指定 Bean 的属性的值。
PropertyUtils.getProperty(Object, String)
PropertyUtils.setProperty(Object, String, Object)
参数
Object:它是要获取或修改其属性的 Bean。
String:是要获取或修改的索引和/或嵌套属性的名称。
示例
以下简单的程序说明了 getProperty 和 setProperty 方法的使用
import org.apache.commons.beanutils.PropertyUtils; public class PropertyUtilsTest { public static void main(String args[]){ try{ Tv Color = new Tv(); PropertyUtils.setProperty(Color, "color", "Black"); String value = (String) PropertyUtils.getProperty(Color, "color"); System.out.println("The color value of Tv is: " + value); } catch(Exception ex){ ex.printStackTrace(); } } public static class Tv{ private String color; public String getColor(){ return color; } public void setColor(String color){ this.color = color; } } }
按照上述示例中的说明运行代码,您将获得以下输出
广告