一个copyList的Kotlin代码例子:

一个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
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区