例如

一个接口(interface)

interface StateInterface {

    val variationTypes: List<VariationType>
        get() = emptyList()

    object EMPTY : StateInterface
}

然后在像这样的actionbean中声明它
open val stateInterface: StateInterface = StateInterface.EMPTY
它仅仅是创建一个新界面吗?为什么我们需要这样做?

最佳答案

您不需要那样做。

interface StateInterface {

    val variationTypes: List<VariationType>
        get() = emptyList()

}

object EMPTY : StateInterface

可以很好地工作,但是作者决定他们希望使用这种用法来读取StateInterface.EMPTY而不是EMPTY

选择这种方式的一个优点或原因是,键入EMPTYStateInterface.出现在代码完成中,使查找起来更容易。

oop - 让接口(interface)对象本身在kotlin的接口(interface)内声明的好处是什么?-LMLPHP

可读性的另一个优点是,引用StateInterface.EMPTY的任何人都不需要附加的import行,如果这不是嵌套对象,则不需要。
import com.example.StateInterface

val x = StateInterface.EMPTY
open val stateInterface: StateInterface = StateInterface.EMPTY这个位是对象的属性。它是open,因此后代实现可以对其进行override。如果没有,StateInterface.EMPTY将是此属性的值。

关于oop - 让接口(interface)对象本身在kotlin的接口(interface)内声明的好处是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53381142/

10-10 08:27