静态编程语言中的属性和开放属性有什么区别?下面的代码抱怨我声明setter私有,Intellij说开放属性不允许私有setter。什么是开放属性?
@RestController
open class ParameterController {
@Autowired
lateinit var parameterRepository: ParameterRepository
private set //error
}
为什么上面的代码无效,而这个代码有效?
open class ItemPrice{
lateinit var type: String
private set // ok
}
编辑:我使用的是spring-allopen插件,将类显式标记为open并没有什么不同。
什么是开放式物业?
一个开放属性,意味着它的 getter/setter(?) 不是最终的。另一方面,它的获取器
在kotlin中,除了接口、注释类、密封类、枚举类、变量、可变属性支持字段和参数之外,所有内容都使用最终关键字声明,但不可变变量
由于allopen
插件将使所有属性
但是,如果打开属性,则打开的属性不能使私有 setter,例如:
//v--- allopen plugin will remove all `final` keyword, it is equivalent to `open`
open var value: String=""; private set
// ^--- ERROR:private set are not allowed
因此,您必须显式将该属性设为final,例如:
//v--- makes it final explicitly by `final` keyword
final var value: String =""; private set
问题内容: 我遇到了JavaFX API中似乎很奇怪的东西:实现,但不是。 这是什么原因呢?我有点想法,这全都源于Java固有的协变和逆变问题,因为泛型是通过擦除 愚蠢地 实现的,以保持与字节码的向后兼容性。但是同时实现 和 会出现什么问题呢? 问题答案: 它 不能同时 实现。 为此,它需要在使用泛型的接口中实现每种方法的两个版本。让我们举一个例子: 在幕后,擦除意味着可以简化为: 那么,什么将实
我正试图从图中的窗体向表插入子层,但为什么不能使用where呢?
问题内容: 我正在研究TypeScript中私有成员的实现,但我感到有些困惑。Intellisense不允许访问私有成员,但是在纯JavaScript中,仅此而已。这使我认为TS无法正确实现私有成员。有什么想法吗? 问题答案: 就像类型检查一样,成员的隐私仅在编译器中强制执行。 私有属性被实现为常规属性,并且不允许类外的代码对其进行访问。 为了使某些东西真正成为类的私有对象,它不能成为该类的成员,
本文向大家介绍什么是财务会计周期?,包括了什么是财务会计周期?的使用技巧和注意事项,需要的朋友参考一下 会计过程是一个过程,它不断记录和处理公司的财务交易。它可以识别,分析和记录公司的日常交易。早先,它是手动输入的,这需要花费大量时间,并且出错的机会很高。 计算机化有助于减少数学错误并节省准备财务图表的大量时间。如今,使用了新的软件,该软件减少了人工工作,并最大程度地减少了错误。 会计期间从会计年
两者之间有什么区别 静态归属[作者:作者] 当static bongsto=Author保留在Books域中时,对数据库没有影响。但是,静态bongsto=[author:author]创建了对author类的反向引用,并且在DB中还有author_id列。因此,实际只使用静态bongsto=Author所做的事情。这是在grails文档(http://grails.github.io/grail
Android Studio给了我一个弯弯曲曲的说法,我应该/可以把它变成一个lambda。我刚回到我的Android系统。 这是弯曲的“对象:PopupMenu.OnMenuItemClickListener”