一个copyList的Kotlin代码例子:
2019-03-12 本文已影响2人
光剑书架上的书
一个copyList的代码例子:
/**
* 把S的列表copy到D的列表
*/
fun <S, D> copyList(sourceList: List<S>?, clazz: Class<D>): List<D>? {
if (null == sourceList || sourceList.size == 0) {
return null
}
val destList = ArrayList<D>()
sourceList.forEach {
val source = it
val dest = createInstance(clazz)
if (dest != null) {
BeanUtils.copyProperties(source, dest)
destList.add(dest)
}
}
return destList
}
private fun <T> createInstance(clazz: Class<T>): T? {
var obj: T?
obj = try {
clazz.newInstance()
} catch (e: Exception) {
logger.error("createInstance with exception: {}", e.message)
logger.error("exception: ", e)
null
}
return obj
}