例如
一个接口(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
。选择这种方式的一个优点或原因是,键入
EMPTY
后StateInterface.
出现在代码完成中,使查找起来更容易。可读性的另一个优点是,引用
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/