每天记一点


先看一段代码 功能是-------拆list 然后调用dozer mapping

protect static <D,S> void mapperList(List<D> dest, List<S> source){

D d = dest.get(0); //因为传入的source由于是个刚初始化的List对象,无法获取到其具体类型,需要调用者硬塞一个成员.
for(S s: source){
  dest.add(this.mapperIf(s,d));
}

}
}


写成上面这样,主要原因可能是错误地认为泛型可以向下面这样用

T instantiateElementType(List<T> arg)
{
  return new T(); // 这里当然会挂,属于编译期和运行期都不知道是啥类型
}




所以就有了比上面稍稍优雅的一段...
你不是拿不到类型么,我给你一个类型
protect static <D,S> List<D> mapperList(List<S> source, Class<D> destType){

List<D> retTOs= new ArrayList<D> ();
for(S s: source){
  dest.add(this.mapperIf(s,d));
}
return retTOs;
}



你要什么我给你什么,对症下药,永远是最简单有效的方法.但前提是你想治.


能用就行的哲学似乎很流行的样子.....

你可能感兴趣的:(每天记一点)