Java反射与泛型

有怪癖的程序猿总是喜欢翻看自己以前的code,总是希望从中找出可以重构的和共享的部分,为了让我们的code最大限度的精简,泛型和反射是两个必须要掌握的技巧。

Java由于各种原因导致我们在做web开发时做的比较大的一部分工作是数据类型转化,为了减少我们的工作量,我们就希望提高这部分的code的重用性,泛型大发神威的时候来了,下面举个例子来说明。

例如有两个List,虚拟主机,香港虚拟主机,List<RoigBean> 和List<DestBean>,RoigBean和DestBean是两个普通的Java Bean,这两个Bean之间的属性存在相同的,这时我们需要将我们需要将List<RoigBean>中的数据拷贝到List<DestBean>,为了代码的通用性,虚拟主机,List的泛型类就不能是特定的某个了,需要一个通配符去动态的匹配我们传入的类型,下面的例子中使用了多个通配符:

/** * * BeanUtils类可以帮之我们拷贝两个有相似属性的Bean * @param <T> Dest bean type * @param <P> Orig bean type * @param type Dest Class, this param purpose to get the dest bean instance * @param destList * @param origList * @throws Exception <T,P> void copyBeans(Class<T> type, List<T> destList, List<P> origList) throws Exception{for(P orig : origList){T dest = type.newInstance();BeanUtils.copyProperties(dest, orig);destList.add((T)dest);}}那里面非常漂亮,个个观景区都能看到奇形怪状的岩石。

Java反射与泛型

相关文章:

你感兴趣的文章:

标签云: