首页 文章

具有非可空吸气剂的可空场

提问于
浏览
1

我试图用可空的setter和nullable字段实现不可空的getter .

  • Field parent 可以为null,表示父级为 this . 如果parent不为null,则父级为 parent 值 .

  • Getter不可为空,因为它返回 thisparent

  • Setter可以设置可为空的值,因为它可以删除当前的父级 .

我试过这个:

@ManyToOne(fetch = FetchType.EAGER)

@JoinColumn(name = "parent_id")
var _parent: T? = null
var parent: T
    get() = if (isParent) this as T else _parent!!
    set(value) {
        _parent = if (value == null) null else value.parent
    }

我不喜欢 _parent 变量,但它对setter没有帮助,因为它仍然不能作为 parent: T ,因此解决方案不起作用 .

1 回答

  • 4

    目前,无法使用不同的getter和setter类型定义属性 . 这个功能有一个open feature request,但它没有计划用于任何特定的Kotlin版本 .

相关问题