Tag: 科特林

复制相同名称属性的简单代码?

很长一段时间,我心中都有一个古老的问题。 当我在Spring中编写代码时,DTO,域对象有很多脏的和无用的代码。 对于语言水平,我在Java中无望,并在Kotlin中看到了一些亮点。 这是我的问题: 样式1我们通常编写以下代码(Java,C ++,C#,…) // annot: AdminPresentation val override = FieldMetadataOverride() override.broadleafEnumeration = annot.broadleafEnumeration override.hideEnumerationIfEmpty = annot.hideEnumerationIfEmpty override.fieldComponentRenderer = annot.fieldComponentRenderer Sytle 2通过在Kotlin中使用T.apply()可以简化以前的代码 override.apply { broadleafEnumeration = annot.broadleafEnumeration hideEnumerationIfEmpty = annot.hideEnumerationIfEmpty fieldComponentRenderer = annot.fieldComponentRenderer } Sytle 3 这样的代码甚至可以简化为这样的代码吗? override.copySameNamePropertiesFrom (annot) { // provide property list here broadleafEnumeration hideEnumerationIfEmpty fieldComponentRenderer } 第一优先级要求 仅提供一次property name列表 property […]

Kotlin界面上的lambda表达式

我正在将Java项目转换为Kotlin,我很惊讶接口使得Kotlin中的代码比Java中的代码更重。 示例 :我想在MyFragment中设置MainActivity中的onBackPressListener。 文件1:MainActivity,文件2:MyFragment,文件3:OnBackPressedListener(接口) Java中的文件1,Kotlin中的文件2,Java中的文件3: activity.setOnBackPressed { /* Do something */ } Kotlin中的文件1,Kotlin中的文件2,Java中的文件3: activity.setOnBackPressed(OnBackPressedListener { /* Do something */ }) Kotlin中的文件1,Kotlin中的文件2,Kotlin中的文件3: activity.setOnBackPressed(object: OnBackPressedListener { override fun onBackPressed() { /* Do something */ } }) 是否可以在Kotlin中使用3个文件并使用lambda来设置监听器? (在Kotlin中获取更多代码真令人沮丧..) 谢谢