e[index]。属性propName1可以是一个数组, java.util.List或者JavaBean beanName有索引属性获取器和设置器操作。bean只需propName的获取器方法,可以想象成类似调用beanName. [getpropName (index)|setpropName(index,value)];
映射属性,格式beanName. propName(key)。propName是一个java.util.Map实现。bean只需propName的获取器方法,可以想象成类似调用beanName. getpropName ().[get("key")|set("key",value);
组合属性,格式beanName. propName1.propName2[index].propName3(key)。
数据库中数据项变化不定时如何设计Java Beans(5)
时间:2011-01-19 IBM 龚永生
3.2 代码解释
为了更有效和直观的解释扩展属性的使用,在这里列出了两段代码,一段代码是Java Bean 代码,一段为propertyUtils以五中格式访问扩展属性的代码。
3.2.1 扩展属性Java Bean
下面是支持这些扩展属性的Java Bean代码:
//TestBean.java
import java.util.*;
import java.io.*;
public class TestBean {
private String dupproperty[] =
{ "Dup 0", "Dup 1", "Dup 2", "Dup 3", "Dup 4" };
//propertyUtils只需要该索引属性的一个获取器操作就能
//使用get/setIndexedproperty方法访问和设置索引和元素值
public String[] getDupproperty() {
System.out.println("getDupproperty");
return (this.dupproperty);
}
//下面的方法对propertyUtils的get/setIndexedproperty方法不关键,有则会调用这些方法
public String getDupproperty(int index) {
System.out.println("getDupproperty index");
return (this.dupproperty[index]);
}
public void setDupproperty(int index, String value) {
System.out.println("setDupproperty index value");
this.dupproperty[index] = value;
}
public void setDupproperty(String dupproperty[]) {
System.out.println("setDupproperty du[]");
this.dupproperty = dupproperty;
}
//这是一个索引属性,除了支持"[]"型的数组属性外,还支持申明为List类型的属性
/**
* A List property accessed as an indexed property.
*/
private static List listIndexed = new ArrayList();
static {
listIndexed.add("String 0");
listIndexed.add("String 1");
listIndexed.add("String 2");
listIndexed.add("String 3");
listIndexed.add("String 4");
}
public List getListIndexed() {
return (listIndexed);
}
//嵌套属性
private TestBean nested = null;
public TestBean getNested() {
System.out.println("getNested");
if (nested == null)
nested = new TestBean();
return (nested);
}
//这是一个映射属性,必须申明为Map类型,propertyUtils只需要该属性的一个获取器操作就能
//使用get/setMappedproperty方法访问和设置键和值
private Map hash = null;
public Map getHash(){
System.out.println("getHash");
if (hash == null) {
hash = new HashMap();
hash.put("First Key", "First Value");
hash.put("Second
|