1700452770
DynaBean user=new LazyDynaBean();
1700452771
1700452772
//直接定义属性和值
1700452773
1700452774
user.set(“name”,“张三”);
1700452775
1700452776
//定义属性名,限定属性类型为Map
1700452777
1700452778
user.set(“phoneNum”,“tel”,“021”);
1700452779
1700452780
user.set(“phoneNum”,“mobile”,“138”);
1700452781
1700452782
//属性类型为ArrayList
1700452783
1700452784
user.set(“address”,0,“上海”);
1700452785
1700452786
user.set(“address”,1,“北京”);
1700452787
1700452788
转换器
1700452789
1700452790
如果我们期望把一个Bean的所有String类型属性在输出之前都加上一个前缀,该如何做呢?一个一个进行属性过滤?或者使用反射来检查属性类型是否是String,然后加上前缀?这样是可以解决,但不优雅,看BeanUtils如何解决:
1700452791
1700452792
//一个简单的Bean对象
1700452793
1700452794
User user=new User(“张三”,18);
1700452795
1700452796
//转换工具
1700452797
1700452798
ConvertUtilsBean cub=new ConvertUtilsBean();
1700452799
1700452800
//注册一个转换器
1700452801
1700452802
cub.register(new Converter(){
1700452803
1700452804
public Object convert(Class type, Object value){
1700452805
1700452806
//为每个String类型的属性加上前缀
1700452807
1700452808
return”prefix-“+value;
1700452809
1700452810
}
1700452811
1700452812
},String.class);
1700452813
1700452814
//建立一个依赖特定转换工具的Bean工具类
1700452815
1700452816
BeanUtilsBean beanUtils=new BeanUtilsBean(cub);
1700452817
1700452818
//输出结果为:prefix-张三
1700452819
[
上一页 ]
[ :1.70045277e+09 ]
[
下一页 ]