LeetCode 算法题 BAT 字节跳动 拼多多 美团 京东大厂面试题集锦

一个copyList的Kotlin代码例子:

2019-03-12  本文已影响2人  光剑书架上的书

一个copyList的代码例子:

#Kotlin#

/**
 * 把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
}
上一篇 下一篇

猜你喜欢

热点阅读