我有一个对象 User
定义如下
class User(){
var id: Int? = null
var name: String? = null}
由于某些原因,我必须创建具有相同参数的新对象 User
,并且我必须将数据从旧类型复制到新类型。
class UserNew(){
var id: Int? = null
var name: String? = null}
我一直在寻找从旧类型转换为新类型的最简单方法。我想做的简单
var user = User()
var userNew = user as UserNew
但显然,我得到了 This cast can never succeed
。如果我有一个包含很多参数的 User
对象,那么创建一个新的 UserNew
对象并设置每个参数是不可行的。有什么建议吗?
最佳答案
as
是 kotlin 的强制转换运算符。但是 User
不是 UserNew
。因此转换失败。
使用扩展函数在类型之间进行转换:
fun User.toUserNew(): UserNew {
val userNew = UserNew()
userNew.id = id
userNew.name = name
return userNew
}
然后像这样使用它
fun usingScenario(user: User) {
val userNew = user.toUserNew()
关于kotlin - Kotlin/Java 中的简单转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52923393/