gpt4 book ai didi

inheritance - Kotlin域类转换为子类

转载 作者:行者123 更新时间:2023-12-02 13:36:17 25 4
gpt4 key购买 nike

我有一个域名类(class)

@Entity
@Table(name = "user")
open class User(
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
open var id: Long = 0L,

@Column(nullable = false)
var name: String? = null)

我有一个该域类的子类,我想添加一个JsonIgnore批注:
open class UserFiltered(
@Id
@JsonIgnore
@GeneratedValue(strategy = GenerationType.IDENTITY)
override var id: Long = 0L
): User()

但是,当我尝试将用户转换为UserFiltered时:
return ResponseModel<UserFiltered>(true, userModified as UserFiltered)

我收到以下错误:

java.lang.ClassCastException: com.example.platform.database.domain.User cannot be cast to com.example.platform.model.UserFiltered at com.example.platform.controller.UserController.modifyUser(UserController.kt:71) ~[classes/:na]



有没有一种方法可以在Kotlin中实现这一目标,或者我将必须进行完整的转换,在User上设置每个参数?

最佳答案

我不得不将子类修改为以下形式:

open class UserFiltered(
@Id
@JsonIgnore
@GeneratedValue(strategy = GenerationType.IDENTITY)
override var id: Long = 0L
): User(){
constructor(user: User): this(user.id)
}

并创建UserFiltered的实例
return ResponseModel<UserFiltered>(true, UserFiltered(userModified))

关于inheritance - Kotlin域类转换为子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56329653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com