代码之家  ›  专栏  ›  技术社区  ›  ey dee ey em

在kotlin的接口中声明接口对象本身有什么好处

  •  1
  • ey dee ey em  · 技术社区  · 7 年前

    接口

    interface StateInterface {
    
        val variationTypes: List<VariationType>
            get() = emptyList()
    
        object EMPTY : StateInterface
    }
    

    然后它被声明在像这样的actionbean中

    open val stateInterface: StateInterface = StateInterface.EMPTY

    它只是创建一个新的接口吗?我们为什么要这样做?

    1 回复  |  直到 7 年前
        1
  •  3
  •   weston    7 年前

    你不必那样做。

    interface StateInterface {
    
        val variationTypes: List<VariationType>
            get() = emptyList()
    
    }
    
    object EMPTY : StateInterface
    

    这样可以很好地工作,但作者决定,他们希望阅读这个用法 StateInterface.EMPTY 不仅仅是 EMPTY .

    选择这种方式的一个优点或原因是 StateInterface. 使它更容易找到。

    Code Completion

    另一个可读性优势是 StateInterface.EMPTY import 如果不是嵌套对象,它们将使用的线。

    import com.example.StateInterface
    
    val x = StateInterface.EMPTY
    

    open val stateInterface: StateInterface = StateInterface.EMPTY 是对象上的属性。它是 open 因此,子代实现可以 override 信息技术如果没有,, StateInterface.EMPTY 将是此属性的值。