Java BeanUtils - Background

描述

Java 语言的标准 JavaBean 可以通过适当的 getter 方法来访问 bean 的属性值。 Java 语言提供了java.beans.Introspector 类来在运行时检查Java 类。 这表示 gettersetter 方法的属性名称以及动态调用此类方法的Reflection 功能。 您可以通过使用 BeanUtils 包中的 API 来动态获取和设置 bean 属性。

JavaBean属性类型分为三种类型(一些属性类型由JavaBeans规范支持,一些属性类型由BeanUtils包支持):

  • Simple:Simple 属性包含可以检索或更改的单个值。您可以使用 Java 语言原语(例如 int)的属性类型、简单对象(例如 java.lang.String)、 或通过使用 Java 语言、应用程序或应用程序的类库指定的复杂对象。

  • Indexed: 对象的有序集合可以存储在索引属性中,可以使用整数值、非负索引或下标单独访问该索引属性。 BeanUtils 包包含名为 java.util.List 的数据类型,必须在 JavaBeans 规范中建立索引。

  • Mapped: BeanUtils 包包含名为 java.util.Map 的数据类型,该数据类型应在标准 JavaBeans API 中映射,并且可以使用字符串值键来设置和访问各个值 。

您可以使用 PropertyUtils 类中指定的 API 方法获取和设置数据类型的属性值。 考虑下面使用 gettersetter 方法定义的两个 bean 类的代码片段:

public class Employee {
   public FullName getFullName();
   public void setFullName(String type, FullName fullname);
   public Employee getSubordinate(int index);
   public void setSubordinate(int index, Employee subordinate);
   public String getFirstName();
   public void setFirstName(String first_name);
   public String getLastName();
   public void setLastName(String last_name);
}