gpt4 book ai didi

kotlin - PropertyModel 不能与 Kotlin 的私有(private)字段一起使用 get()

转载 作者:行者123 更新时间:2023-12-02 12:48:23 27 4
gpt4 key购买 nike

如果 kotlin 的模型有一个字段:

class MyModel {
private val theValue: Double
get() { return 1.0 }
}

在 Wicket 口页面:
new PropertyModel(model , "theValue")

它会失败:
WicketRuntimeException: Property could not be resolved for class: class MyModel expression: theValue

解决方案:删除私有(private)修饰符:
class MyModel {
val theValue: Double
get() { return 1.0 }
}

有没有办法解决这个问题(保留私有(private)修饰符)?

( Wicket 口 7.9.0,Kotlin 1.2)

最佳答案

由于需要读取和写入模型,因此您的模型必须具有带有支持字段的属性。

class MyModel {
private val theValue: Double
get() { return 1.0 }
}

没有支持字段,即使您删除了 private修饰符。

试试这样:
class MyModel {
var theValue = 1.0
}

或者如果您需要 equals() , hashCode()等开箱即用:
data class MyModel(var theValue: Double = 1.0)

注意:Wicket 是一个 Java 框架。在它的 documentation它明确指出,您需要一个 Java bean 作为模型,它位于第二个代码片段中。

关于kotlin - PropertyModel 不能与 Kotlin 的私有(private)字段一起使用 get(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48269883/

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