我正在尝试使用Kotlin与TeamCity进行交互 .
当您将项目转换为Kotlin(来自.xml)时,您将拥有一个名为Project.kt的文件,您可以在其中设置所有配置 .
没有编辑我的看起来像这样:
object Project : Project(/* Some Function Literal with Receiver */)
这看起来像循环继承?我省略了进口产品,但肯定不会产生那么大的差别吗?是否可以根据文件中出现的位置以不同方式解释名称?
我的想法是解释对象签名,如下所示:
-
object =单身人士的对象声明 .
-
Project (第一次出现)=对象名称 .
-
: =继承标记 .
-
Project (第二次出现)=要继承的基类 .
-
() =构造函数调用基类 .
1 回答
假设合格的类
other.Project
和my.Project
,您将在不同的包中使用相同的名称定义两个不同的类 .由于
my.Project
被定义为Singleton,因此您无法从它扩展而实际的基类是other.Project
. 科特林很聪明,可以区分 . 如果您尝试对类声明执行相同操作,则会获得循环继承 .您甚至可以尝试强制从Singleton强制扩展,但之后您将遇到错误无法从Singleton继承 . 所以基本上这只适用于你导入正确的类 .