一、org.apache.commons.beanutils.beanmap;
将一个java bean允许通过map的api进行调用,
几个支持的操作接口:
object get(object key)
object put(object key, object value)
void putall(map t)
set entryset()
collection values()
boolean containskey(object key)
....
例如:
//将student的信息拼成字符串,格式:stuname|stuage|stuclass
protected string getline(student student) {
stringbuilder sb = new stringbuilder();
beanmap map = new beanmap(student );
appstr(sb, map, "stuname");
appstr(sb, map, "stuage");
appstr(sb, map, "stuclass");
return sb.tostring();
}
//将teacher的信息拼成字符串,格式:tname|tage|tclass
protected string getline(teacher teacher) {
stringbuilder sb = new stringbuilder();
beanmap map = new beanmap(teacher);
appstr(sb, map, "tname");
appstr(sb, map, "tage");
appstr(sb, map, "tclass");
return sb.tostring();
}
//拼字符串公用方法,将不同的对象,比如studengt和teacher的信息通过map传到方法里
protected void appstr(stringbuilder sb, map<string, object> map,
string str) {
object value = map.get(str);
sb.append(newvalue).append("|");
}
注意:在上面的例子中,虽然可以直接用
sb.append(student.getstuname()).append(|).append(student.getstuage()).append(|).append(student.getstuclass);
来拼接字符串,但却使用了beanmap,我认为原因就在于同时有多个对象(如student、teacher等)需要用到拼接字符串的方法,
想要抽象出公共的方法,因此使用了beanmap ,这样不需要将没个对象都传到appstr中,只需要传一个beanmap对象就可以了。
以上就是java bean通过map的api进行调用实例的详细内容。