Inheritance Kotlin:类继承包含伴生对象但不包含';我无法访问接口的常数

Inheritance Kotlin:类继承包含伴生对象但不包含';我无法访问接口的常数,inheritance,interface,kotlin,companion-object,Inheritance,Interface,Kotlin,Companion Object,以下是界面: interface SomeInterface { companion object { const val MY_CONST = "the constant" } } 然后,类(没有body,因为它只是一个示例): 在此之后,当我试图通过SomeClass调用常量时,它不允许我: SomeClass.MY_CONST 如何解决此问题?不是“可继承的”;它们完全由定义它们的上下文限定(SomeInterface,在您的例子中) 本质上,你需要写: Som

以下是界面:

interface SomeInterface {
   companion object {
      const val MY_CONST = "the constant"
   }
}
然后,类(没有body,因为它只是一个示例):

在此之后,当我试图通过SomeClass调用常量时,它不允许我:

SomeClass.MY_CONST
如何解决此问题?

不是“可继承的”;它们完全由定义它们的上下文限定(
SomeInterface
,在您的例子中)

本质上,你需要写:

SomeInterface.MY_CONST

好的,谢谢!我希望这是可能的。在java中,这很简单:在Kotlin中,DIt也很简单:只需使用声明的名称即可。说真的,你想达到什么目的?也许我们可以帮助您获得一个可接受的设计。我想通过子类调用接口的常量,仅此而已。我不想调用SomeInterface.MY_CONST,但要调用SomeClass.MY_CONST。但是,如果没有办法做到这一点,我将从接口调用。。。sadlyI在问是否有一个设计决策让您认为这将是一个更好的API。还有一些替代方法,比如在其他地方声明常量(请记住,您可以在Kotlin中有顶级声明,或者您可以定义一个
对象来保存它),这只是为了保持代码更简洁,这个接口用于其他类,这些类应该具有相同的常量。声明为对象是不好的,因为不允许继承。
SomeInterface.MY_CONST